source: dev/trunk/ab5.0/abdev/ProjectEditor/Common.h@ 475

Last change on this file since 475 was 475, checked in by dai_9181, 16 years ago

構成管理を変更中・・・(いったんコミット)

File size: 34.4 KB
RevLine 
[3]1#define OEMRESOURCE
2#define _CRT_SECURE_NO_DEPRECATE //セキュリティ警告を出さない
3#define _CRT_NONSTDC_NO_DEPRECATE
4#include <windows.h>
5#include <stdio.h>
6#include <string.h>
7#include <commctrl.h>
[450]8#include "htmlhelp.h"
[3]9#include <shlobj.h>
10#include <zmouse.h>
11#include <math.h>
12#include <limits.h>
13#include <process.h>
14#include <wininet.h>
[80]15
16#include <vector>
17#include <string>
18#include <fstream>
19
20using namespace std;
21
[3]22#include "nkf_class.h"
23#include "WebSearch.h"
24#include "ruler.h"
25#include "TabCtrl.h"
26#include "ExtensionLink.h"
27#include "HtmlAnalysis.h"
28#include "FileTree.h"
29#include "menu.h"
30#include "LuxCtrl.h"
[24]31#include "MdiTextEdit.h"
[3]32#include "BREGEXP.H"
33#include "../BasicCompiler32/CommandValue.h"
[461]34#include "../BasicCompiler_Common/BasicFixed.h"
[3]35
36
37typedef struct _charrange {
38 LONG cpMin;
39 LONG cpMax;
40} CHARRANGE;
41
42
43#include "Attach.h"
44#include "Debugger.h"
45
46
47#pragma comment(lib, "wininet.lib")
48
49
50
51#ifdef THETEXT
52
53////////////////////////////
54// TheTextのバージョン情報
55////////////////////////////
56#define APPLICATION_NAME "TheText"
57#define VERSION_APPLI_NAME APPLICATION_NAME
58#define VERSION_STRING "1.02"
59
60#else
61
62/////////////////////////////////////////////////
63// ActiveBasic/ProjectEditorのバージョン情報
64/////////////////////////////////////////////////
65#define APPLICATION_NAME "ActiveBasic 5.0"
66#define VERSION_APPLI_NAME APPLICATION_NAME
[418]67#define VERSION_STRING "5.00.00"
[3]68
69#endif
70
71
72
73#define WIN32_COMPILER_NAME "BasicCompiler32.exe"
74#define WIN64_COMPILER_NAME "BasicCompiler64.exe"
75
76
77#ifndef IMAGE_FILE_MACHINE_AMD64
78#define IMAGE_FILE_MACHINE_AMD64 0x8664 // AMD64 (K8)
79#endif
80
81
82#if defined(JPN)
83
84#ifdef THETEXT
85//TheText日本語
86#include "../res_TheText/resource.h"
87#include "common_msg_jpn.h"
88#else
89//日本語
90#include "../res/resource.h"
91#include "common_msg_jpn.h"
92#endif
93
94#else
95//英語
96#include "../res_e/resource.h"
97#include "common_msg_eng.h"
98#endif
99
100//アイコンリソース
101#include "../icon_res/resource.h"
102
103
104
105
106#define GENERAL_SIZE 8192
107#define MAX_ARRAYDIM 16
108
109#define MAX_WNDNUM 255
110
111
112#ifdef _AMD64_
113#else
114typedef long LONG_PTR;
115typedef DWORD ULONG_PTR;
116#endif
117
118//ファイルタイプ
119#define FT_BASICPROGRAM 1
120#define FT_SUBPROGRAM 2
121#define FT_TEXT 3
122#define FT_PROJECT 4
123#define FT_ICON 5
124#define FT_HTML 6
125#define FT_OTHER 0
126
127#define BMPNUM_STANDARDTOOLBAR 10 //hDefaultToolbarのビットマップ数
128#define SEPNUM_STANDARDTOOLBAR 4 //hDefaultToolbarのセパレータ数
129#define BMPNUM_DEBUGGERTOOLBAR 8 //hDebuggerToolbarのビットマップ数
130#define SEPNUM_DEBUGGERTOOLBAR 2 //hDebuggerToolbarのセパレータ数
131#define BMPNUM_RADTOOLBAR 18 //コントロール挿入用ツールバーのビットマップ数(区切り用BMPを最後の1つに用意する)
132#define SEPNUM_RADTOOLBAR 3 //コントロール挿入用ツールバーのセパレータ数
133
134//MDIクライアントウィンドウ下のドキュメントウィンドウタイプ
135#define WNDTYPE_BASIC 1
136#define WNDTYPE_TEXT 2
137#define WNDTYPE_RAD 3
138#define WNDTYPE_MENU 4
139#define WNDTYPE_ICONEDIT 5
140#define WNDTYPE_HTML 6
141
142#define IS_DOCUMENT_TEXT(a) (a==WNDTYPE_BASIC||a==WNDTYPE_TEXT||a==WNDTYPE_HTML)
143
144#define IS_RETURN(buffer,p) (buffer[p]=='\r'&&buffer[p+1]=='\n')
145#define IS_BLANK(c) (c==' '||c=='\t')
146
147//Rebarコントロールの個数(レバー追加)
148#define MAX_REBARBANDS 5
149
150//RebarコントロールのID(レバー追加)
151#define ID_DOCCOMBO 1
152#define ID_STANDARDTOOLBAR 2
153#define ID_RELEASETOOLBAR 3
154#define ID_DEBUGGERTOOLBAR 4
155#define ID_SELECTCOMPILERCOMBO 5
156#define ID_WEB_SEARCH 6
157
158//検索コンボボックスの最大リスト数
159#define MAX_FINDLIST 20
160
161#define ID_FIRSTCHILD 100
162
163
164//タブカラー
165#define TABCOLOR_GRAY RGB(230,230,230) //灰色
166#define TABCOLOR_WHITE RGB(255,255,255) //白
167#define TABCOLOR_RED RGB(255,200,200) //赤
168#define TABCOLOR_GREEN RGB(200,255,200) //緑
169#define TABCOLOR_BLUE RGB(200,220,255) //青
170#define TABCOLOR_YELLOW RGB(255,255,180) //黄色
171
172
173//////////////////////////////////////////
174// BasicCompiler、ProjectEditor共通の定数
175//////////////////////////////////////////
176
177//サイズ変更枠の太さ
178#define LEVER_THICK 5
179
180#define WM_SHOWERROR WM_USER+70 //エラー表示メッセージ
181
182#define WM_SETCOMPILEVIEW WM_USER+71 //コンパイラウィンドウが表示されたとき
183#define WM_DESTROYCOMPILEVIEW WM_USER+72 //コンパイラウィンドウが破棄されたとき
184
185#define WM_SETDEBUGGERBASE WM_USER+73 //デバッガベースウィンドウが表示されたとき
186#define WM_DESTROYDEBUGGERBASE WM_USER+74 //デバッガベースウィンドウが破棄されたとき
187
188#define WM_SETDEBUGGERVIEW WM_USER+75 //デバッガウィンドウが表示されたとき
189#define WM_DESTROYDEBUGGERVIEW WM_USER+76 //デバッガウィンドウが表示されたとき
190
191///////////////////////////////////////////
192
193
194#define WM_RESETCARETPOS WM_USER+80 //オートスクロールスレッドからのキャレット設定
195
196#define WM_SEARCH_TAB_CREATE WM_USER+90 //Web検索のタブアイテムの生成メッセージ
197#define WM_SEARCH_TAB_CLOSE WM_USER+91 //Web検索のタブアイテムの破棄メッセージ
198
199//SideWeb
200#define WM_BROWS_CREATE WM_USER+100
201#define WM_BROWS_DESTROY WM_USER+101
202#define WM_BROWS_GO WM_USER+102
203#define WM_BROWS_NAVI WM_USER+103
204
205
206
207#define MAX_HASH 32768
208
209
210//////////////////////////////////
211// メインウィンドウのタイマーID
212
213#define ID_TIMER_BACKUP 10
214#define ID_DEBUGSAFTY 20
215
216// ここまで
217//////////////////////////////////
218
219
220
221extern HANDLE hHeap;
222extern HINSTANCE hInst,hResInst,hIconResInst;
223extern HWND hOwner;
224extern HWND hClient;
225extern int ScreenX,ScreenY;
226extern char pj_editor_Dir[MAX_PATH];
227
228
229//アルファブレンド用のAPI
230#define WS_EX_LAYERED 0x00080000
231#define LWA_ALPHA 0x00000002
232typedef BOOL (WINAPI *FWINLAYER)(HWND hwnd, COLORREF crKey, BYTE bAlpha, DWORD dwFlags );
233
234
235
236//新規プロジェクトのベース
237#define BASE_VOID 0
238#define BASE_PROMPT 1
239#define BASE_NORMAL 2
240
241struct POINTANDSIZE{
242 POINT pos;
243 SIZE size;
244};
245
246
247
248//////////////////////////////////////////
249// リソース ヘッダ(アイコン、カーソル用)
250typedef struct{
251 WORD idReserved;
252 WORD idType;
253 WORD idCount;
254}ICONDIR,CURSORDIR;
255
256////////////////////////////
257//.icoファイルのヘッダ情報
258struct ICONDIRENTRY{
259 BYTE bWidth;
260 BYTE bHeight;
261 BYTE bColorCount;
262 BYTE bReserved;
263 WORD wPlanes;
264 WORD wBitCount;
265 DWORD dwBytesInRes;
266 DWORD dwImageOffset;
267};
268
269
270/////////////////////
271//MDIウィンドウ情報
272
273#define MAX_UNDONUM 300//512未完成
274#define MAX_ICONEDIT_UNDONUM 32
275
276#define TEXTEDIT_UNDO_KEY 1
277#define TEXTEDIT_UNDO_PASTE 2
278#define TEXTEDIT_UNDO_SELKEY 3
279struct TEXTEDIT_UNDOSTATE{
280 int NowPos;
281 int Command[MAX_UNDONUM];
282 char *KeyStr[MAX_UNDONUM];
283 char *DelStr[MAX_UNDONUM];
284 CHARRANGE Range[MAX_UNDONUM];
285 CHARRANGE DelRange[MAX_UNDONUM];
286};
287
288struct RAD_UNDOSTATE_NAME{
289 char *name;
290 char *HandleName;
291 char *CallBackName;
292};
293#define RAD_UNDO_INSERTWND 1
294#define RAD_UNDO_DELETEWND 2
295#define RAD_UNDO_INSERTITEM 3
296#define RAD_UNDO_DELETEITEM 4
297#define RAD_UNDO_NAME 5
298#define RAD_UNDO_CAPTION 6
299#define RAD_UNDO_FONT 7
300#define RAD_UNDO_BGCOLOR 8
301#define RAD_UNDO_WINDOWMENU 9
302#define RAD_UNDO_ICONRES 10
303#define RAD_UNDO_STYLE 11
304#define RAD_UNDO_EXSTYLE 12
305#define RAD_UNDO_POSITION 13
306#define RAD_UNDO_IMAGESTATE 14
307#define RAD_UNDO_TYPE 15
308struct RAD_UNDOSTATE{
309 int NowPos;
310 int Command[MAX_UNDONUM];
311 int SelectItemNum[MAX_UNDONUM];
312 DWORD lpdwData[MAX_UNDONUM];
313};
314
315#define MAX_RAD_SELITEM 255
316struct MDIRADINFO{
317 //Radツール用
318
319 HWND hTools;
320
321 HWND hProperty;
322 HWND hProp_Dlg;
323
324 HWND hSupport;
325
326 HWND hRad;
327
328 HBITMAP hBitmap;
329 HBITMAP hOldBitmap;
330 HDC hMemDC;
331 int SelectingItem[MAX_RAD_SELITEM];
332 int ButtonSelect;
333
334 //ウィンドウクライアント領域
335 POINT ClientPos;
336 SIZE ClientSize;
337
338 //変更情報
339 RAD_UNDOSTATE undo;
340};
341
342struct MDIMENUINFO{
343 HWND hList;
344 HWND hMenuEdit;
345 HWND hEdit_Dlg;
346};
347
348#define ICONTYPE_16_16 0
349#define ICONTYPE_16_256 1
350#define ICONTYPE_32_16 2
351#define ICONTYPE_32_256 3
352struct ICONEDIT_UNDOSTATE{
353 int NowPos;
354 BYTE *lpData[MAX_ICONEDIT_UNDONUM];
355};
356struct MDIICONEDITINFO{
357 HWND hMain;
358 HWND hToolDlg;
359 HWND hButtonsDlg;
360 HWND hColorDlg;
361
362 HDC memdc;
363 HBITMAP hMemBmp;
364
365 HBITMAP hSelectingBmp;
366 int SelectLevel;
367 RECT DraggingRect;
368
369 int num;
370 int SelectIconNum;
371 union{
372 BYTE *pIconImage[8]; //アイコンのイメージデータ配列(マップ配列、カラー配列、マスク配列)
373 BITMAPINFOHEADER *pBmpHdr[8];
374 };
375 DWORD dwBytesInRes[8];
376
377 DWORD NowTool;
378 COLORREF MainColor;
379 COLORREF SubColor;
380
381 ICONEDIT_UNDOSTATE undo[8];
382 BOOL bModify;
383};
384
385struct MDIINFO{
386 HWND hwnd;
387 int DocType;
388 char *title;
389 char *path;
390
391 union{
392 MDIRADINFO *MdiRadInfo;
393 MDIMENUINFO *MdiMenuInfo;
394 MDIICONEDITINFO *MdiIconEditInfo;
[24]395 CMdiTextEdit *pMdiTextEdit;
[3]396 };
397
398 char *IndentStr;
399};
400extern MDIINFO MdiInfo[MAX_WNDNUM];
401
402//RADツールのマウスドラッグ
403#define FRAME_CHANGEPOS_START 1 //----- ここから -----
404#define FRAME_UPPER_LEFT 1
405#define FRAME_UPPER_RIGHT 2
406#define FRAME_LOWER_LEFT 3
407#define FRAME_LOWER_RIGHT 4
408#define FRAME_LEFT 5
409#define FRAME_RIGHT 6
410#define FRAME_UPPER 7
411#define FRAME_LOWER 8
412#define FRAME_INSIDE 9
413#define FRAME_CHANGEPOS_END 9 //----- ここまで -----
414#define ITEM_MAKING 10
415#define SELECTING_FRAME 11
416
417//アイテムの大きさの限界値
418#define MIN_ITEM_X 12
419#define MIN_ITEM_Y 9
420
421//選択アイテム
422#define SELECT_WINDOW -1
423#define NON_TOOL -1
424
425struct RADINFO{
426 int NowDragging;
427 POINT DragStartPos;
428 RECT DragStartRect[MAX_RAD_SELITEM];
429 RECT DraggingRect[MAX_RAD_SELITEM];
430 RECT OldDraggingRect[MAX_RAD_SELITEM];
431};
432
433
434//////////////////
435//リソース情報
436struct RESITEMINFO{
437 char *IdName;
438 char *path;
439
440 HTREEITEM hTreeItem;
441};
442struct RESOURCEINFO{
443 int NumberOfCursorRes;
444 RESITEMINFO *pCursorResInfo;
445 HTREEITEM hCursorTreeItem;
446
447 int NumberOfBitmapRes;
448 RESITEMINFO *pBitmapResInfo;
449 HTREEITEM hBitmapTreeItem;
450
451 int NumberOfIconRes;
452 RESITEMINFO *pIconResInfo;
453 HTREEITEM hIconTreeItem;
454};
455
456
457////////////////////
458//プロジェクト情報
459
460#define PROJECT_VERSION 10
461
462class CFileInfo{
463public:
464 char *m_path;
465 HTREEITEM m_hTreeItem;
466 CFileInfo(char *path,HTREEITEM hTreeItem);
467 ~CFileInfo();
468
469 void GetFullPath(char *buffer);
470};
471class CDBFileInfo{
472public:
473 int iNum;
474 CFileInfo **ppobj_FileInfo;
475
476 CDBFileInfo();
477 ~CDBFileInfo();
478
479 void add(char *path,HTREEITEM hTreeItem);
480 void del(HTREEITEM hTreeItem);
481 char *GetPath(HTREEITEM hTreeItem);
482 BOOL IsMainFile(HTREEITEM hTreeItem);
483
484 void SetTreeItem(int index,HTREEITEM hTreeItem);
485 void ResetTree(void);
486
487 BOOL dupli_check(char *path);
488};
489struct FILEINFO{
490 char *pPath;
491 HTREEITEM hTreeItem;
492};
493
494struct PROCINFO{
495 char *name;
496 int FileNum;
497 HTREEITEM hTreeItem;
498
499 int code_pos;
500};
501struct INCPROCINFO{
502 char *name;
503 char *Parms;
504 char *type;
505};
506
507//ダイアログアイテムの種類
508#define CT_BUTTON 1
509#define CT_CHECKBOX 2
510#define CT_COMBOBOX 3
511#define CT_EDIT 4
512#define CT_GROUPBOX 5
513#define CT_HSCROLLBAR 6
514#define CT_IMAGEBOX 7
515#define CT_LISTBOX 8
516#define CT_LISTVIEW 9
517#define CT_RADIOBUTTON 10
518#define CT_STATIC 11
519#define CT_TREEVIEW 12
520#define CT_VSCROLLBAR 13
521#define CT_UPDOWN 14
522#define CT_PROGRESSBAR 15
523#define CT_TRACKBAR 16
524#define CT_MENU 99
525
526//イベント タイプ
527#define EVENTTYPE_DEFAULT 0
528#define EVENTTYPE_MENU 1
529#define EVENTTYPE_MMSYS 2
530
531//ウィンドウ タイプ
532#define WNDTYPE_DEFAULT 0
533#define WNDTYPE_MODALDLG 1
534#define WNDTYPE_MODELESSDLG 3
535
536//イメージタイプ
537#define IMGTYPE_FILE 0
538#define IMGTYPE_RES 1
539
540struct IMAGECTRLINFO{
541 int type;
542 char *path;
543};
544struct CHILDINFO{
545 char *IdName;
546 POINT pos;
547 SIZE size;
548 char *caption;
549 DWORD style;
550 DWORD ExStyle;
551 int Control;
552
553 IMAGECTRLINFO ImageCtrlInfo;
554};
555struct WINDOW_INFO{
556 //ウィンドウデータ
557 char *name;
558 char *HandleName;
559 POINT pos;
560 SIZE size;
561 char *caption;
562 DWORD style;
563 DWORD ExStyle;
564 char *MenuID;
565 int id;
566 int bgColor;
567 LOGFONT LogFont;
568 char *IconResName;
569 char *ClassName;
570 char *CallBackName;
571 long type;
572 char *filepath;
573
574 //子ウィンドウ管理
575 int NumberOfChildWindows;
576 CHILDINFO *pChildInfo;
577
578 //ツリー項目
579 HTREEITEM hTreeItem;
580};
581struct NEWPROJECTINFO{
582 char name[MAX_PATH];
583 DWORD dwTypeID;
584 _int8 ShowHelloWorld;
585 DWORD dwOption;
586};
587struct MENU_INFO{
588 char *IdName;
589 char *caption;
590 UINT type;
591 UINT state;
592
593 int NumberOfMenu;
594 MENU_INFO *pMenuInfo;
595
596 HTREEITEM hTreeItem;
597};
598#define MT_EXE 0 //EXEモジュールタイプ
599#define MT_DLL 1 //DLLモジュールタイプ
600#define PJ_OP_SOURCE_MASK 0x00FFFFFF
601#define PJ_OP_MMSYSTEM 0x00000001
602#define PJ_OP_COMMCTRL 0x00000002
603#define PJ_OP_RICHEDIT 0x00000004
604#define PJ_OP_WINSOCK 0x00000008
[119]605#define PJ_OP_STRICT 0x00010000 // #strictディレクティブは今は使われていない
[3]606#define PJ_OP_RC_MANIFEST 0x00020000
[55]607#define PJ_OP_UNICODE 0x00040000
[3]608struct PROJECTINFO{
609 DWORD dwModuleType;
610
611 char name[MAX_PATH];
612 char dir[MAX_PATH];
613
614 DWORD dwVersion;
615
616 CDBFileInfo *pobj_DBFileInfo;
617
618 char ResourceFileName[MAX_PATH];
619
620 int NumberOfMenu;
621 MENU_INFO *pMenuInfo;
622 HTREEITEM hMenuTreeItem;
623
624 int NumberOfWindows;
625 WINDOW_INFO *pWindowInfo;
626 HTREEITEM hWindowTreeItem;
627
628 RESOURCEINFO res;
629
630 DWORD dwOption;
631 char lpszOutput_Release[MAX_PATH];
632 char lpszOutput_Debug[MAX_PATH];
633
634 //マニフェスト
635 char szManifestPath[MAX_PATH];
636
637 //デバッグ情報
638 char szCmdLine[8192];
639 char szExePath[MAX_PATH];
640
641 //ブレークポイント情報
642 CDBBreakPoint *pobj_DBBreakPoint;
643
644 _int8 ModifyOfMaterial;
645 _int8 ModifuOfResource;
646 _int8 modify;
647};
648extern PROJECTINFO ProjectInfo;
649
650
651struct SAVEREBAR{
652 int RebarID;
653 int RebarLength;
654 int IsBandBreak;
655};
656
657struct ITEMEVENTINFO{
658 char *IdName;
659 char **pEventNames;
660 int ClassID;
661 int EventNum;
662};
663
664#define PARAMETER_HINT_MAX_SIZE 8192
665struct METHODCHECKINFO{
666 HWND hWnd;
667 LOGFONT LogFont;
668 HFONT hFont;
669 HFONT hBoldFont;
670 char BeforeMethodName[VN_SIZE];
671 char msg[PARAMETER_HINT_MAX_SIZE];
672 int ParmNum;
673 int HeadPos;
674};
675
676
677/////////////////////
678// コード補完機能
679/////////////////////
680
681#define ACCESS_NON 0
682#define ACCESS_PRIVATE 1
683#define ACCESS_PUBLIC 2
684#define ACCESS_PROTECTED 3
685#define ACCESS_PAIRCOMMAND 4
686#define ACCESS_HTML_GENERAL_PARAM 5
687#define ACCESS_HTML_PARAM 6
688struct MEMBERINFO{
689 //クラス名
690 char *pName;
691 DWORD dwProc;
692 DWORD dwAccess;
693
694 int code_pos;
695};
696struct COMPLEMENT_WINDOW_INFO{
697 HWND hWnd;
698 HWND hList;
699
700 int iPos;
701 int iLength;
702
703 MEMBERINFO *pMemberInfo;
704 int MemberNum;
705
706 //ペアステートメントのインデント格納用
707 char szIndent[255];
708};
709
710
711
712class CSettingFile{
[80]713 BOOL GetDataLine(const char *name,char *parms);
[3]714protected:
715 char *buffer;
716
[80]717 BOOL GetWholeValue(const char *name,int *pi32data);
718 bool GetBoolean( const char *name,bool &b );
[3]719 BOOL Get3WholeValue(char *name,int *pd1,int *pd2,int *pd3);
720 BOOL GetRGBValue(char *name,COLORREF *prgb);
721 BOOL GetStringValue(char *name,char *str);
722 BOOL GetRectValue(char *name,RECT *prc);
723 BOOL GetLogFont(char *name,LOGFONT *plf);
724 BOOL GetRebarBand(SAVEREBAR *psr,int num);
725
[80]726 void SetWholeValue( const char *name,long i32data);
727 void SetBoolean( const char *name,bool b);
[3]728 void Set3WholeValue(char *name,long d1,long d2,long d3);
729 void SetRGBValue(char *name,COLORREF rgb);
730 void SetStringValue(char *name,char *str);
731 void SetRectValue(char *name,RECT *prc);
732 void SetLogFont(char *name,LOGFONT *plf);
733 void SetRebarBand(SAVEREBAR *psr,int num);
734};
735#include "DesignTheme.h"
736
737
738
739//ProjectEditor.cpp
740void HeapDefaultFree(LPVOID lpMem);
741void ToBigChar(char str[]);
742int GetWndNum(HWND hChild);
743int GetNowWndNum(void);
744int GetFileNum(int WndNum);
745void SendTextEditResizeEvent(HWND hwnd);
746void RedrawAllWindow(void);
747int DocumentModifyCheck(HWND hChild);
748void SetStatusText(char *MenuText);
749void ResetState_UndoMenu(void);
750void ResetState_EditMenu(void);
751void ResetState_DocMenu(void);
752void DuplicateTitleCheck(char *lpszTitle);
753HWND NewTextEditWindow(char *filepath,_int8 DocumentType,COLORREF TabColor=TABCOLOR_GRAY);
754void CloseDocWindow(int WndNum);
755void ResizeTextEditWnd(HWND hwnd,int cx,int cy);
756void ResizeOwnerWnd(void);
757#define FLAG_DBLCLK 1
758#define FLAG_BEAMCURSOR 2
759int RegWndClass(WNDPROC WndProc,char *lpClassName,HBRUSH hBackBrush,DWORD dwFlag);
760
761//Backup.cpp
762void CreateBackupDir(void);
763void backup(void *dummy);
764BOOL restore(void);
765
766//DialogBoxes.cpp
767void SetPosCenter(HWND hParent,HWND hwnd);
768void SetPosCenter(HWND hwnd);
769BOOL SetFontDialog(HWND hwnd,LOGFONT *lf,BOOL bFixedPitchOnly,int *lpiPointSize=0);
770void DlgNewProjectWizard(HWND hwnd);
771BOOL CALLBACK DlgNewFile(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);
772void DlgProjectOptionSetting(HWND hwnd);
773void DlgOptionSetting(HWND hwnd);
774BOOL CALLBACK DialogAbout(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);
775
776//FileOperation.cpp
777void MakeUserSettingDir(void);
[475]778char *ReadBuffer( const std::string &path );
779char *ReadBuffer_NonErrMsg( const std::string &path );
[99]780_int8 WriteBuffer(char *path,char *buffer,int length, bool isEnableError = true);
[3]781_int8 WriteBuffer_NonErrMsg(char *path,char *buffer,int length);
782void GetRelationalPath(char *path,char *dir);
783void GetFullPath(char *path,char *dir);
[80]784void RemoveDirectoryStrong(const char *dirPath);
[3]785BOOL GetFilePathDialog(HWND hwnd,char *filename,LPSTR Filter,LPSTR Title,_int8 IsOpen);
786BOOL GetFolder(HWND hWnd,char *folder,char *OpenFolderTitle);
787int GetFileExtension(char *path);
788HWND OpenFileWithExtension(char *OpenFileName);
789BOOL SaveDocument(HWND hChild,char *SaveFileName);
790BOOL ShortPathToLongPath(char ShortPath[MAX_PATH],char *LongPath);
[22]791bool IsExistFile( const char *FilePath );
792bool IsExistDirectory( const char *DirPath );
[3]793
794//rebar.cpp
795#define MAX_BAND 255
796typedef HWND (*AddBandProc)(HWND hRebar,int num,char *lpszText);
797class CDBRebarBand{
798 int BandId[MAX_BAND];
799 AddBandProc pAddProc[MAX_BAND];
800 int iMaxBandNum;
801public:
802 HWND hRebar;
803 CDBRebarBand();
804 ~CDBRebarBand();
805 void add(int band_id,AddBandProc add_proc);
806 HWND call_add(int band_id,int num,char *lpszText);
807};
808class CMainRebar{
809 CDBRebarBand *pobj_DBRebarBand;
810
811 void SetupRebar(HWND hwnd);
812public:
813 HWND hParent;
814 HWND hRebar;
815
816 CMainRebar(HWND hwnd_parent);
817 ~CMainRebar();
818
819 void ResetInitRebar();
820 void ResetRebar();
821 void SaveRebarState(void);
822 void ChangeRebarBand(int BandID);
823 void menu_popup(HWND hwnd,int PosX,int PosY);
824};
825extern CMainRebar *pobj_Rebar;
826void ResetRebarData(void);
827LRESULT CALLBACK DefaultToolbarProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);
828LRESULT CALLBACK DocComboProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);
829LRESULT CALLBACK DebuggerToolbarProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);
830
831//SubOperation.cpp
832void ScreenToClient(HWND hwnd,RECT *pRect);
833void ClientToScreen(HWND hwnd,RECT *pRect);
834BOOL IsWow64(void);
835void URLEncode(LPSTR pszSrc);
836void Digit(int num,char *buffer);
837void RectNaturalFormat(RECT *ReadRect,RECT *CopyRect);
838void RectNaturalFormat(int *x1,int *y1,int *x2,int *y2);
839void KillSpaces(char *str1,char *str2);
840void RemoveStringQuotes(char *str);
841void SlideString(char *str,int slide);
842void SlideBuffer(char *buffer,int length,int slide);
843BOOL IsVariableTopChar(char c);
844BOOL IsVariableChar(char c);
845BOOL IsCommandBackDelimitation(char *buffer,int pos);
846BOOL IsCommandDelimitation(char *buffer,int p);
[80]847char *ComparisonString( char *str1, char *str2, bool isBigSmall, bool isWordUnit );
[3]848int GetOneParameter(char *Parameter,int pos,char *retAns);
849int GetStringInPare(char *buffer,char *ReadBuffer);
850int GetStringInBracket(char *buffer,char *ReadBuffer);
851void JumpBlank(char *pBuf,int *piPos);
852BOOL CheckParenthesis(char *buffer);
853DWORD GetValue(char *value);
854BOOL IsManagementCommand(int ComNum);
855int IsBasicReservedWord(char *str);
856HBITMAP CreateGradationBitmap(SIZE *pSize,COLORREF color1,COLORREF color2);
857HBITMAP CreateVertGradationBitmap(SIZE *pSize,COLORREF color1,COLORREF color2);
858HBITMAP CreateHorzGradationBitmap(SIZE *pSize,COLORREF color1,COLORREF color2);
859HICON CreateGrayIcon(HICON hBaseIcon);
860void GetSize(SIZE *pSize,RECT *pRect);
861BOOL HitTest(RECT *pRect,POINT *pPos);
862BOOL Rectangle(HDC hdc,RECT *pRect);
863void ComboBox_SetSelText(HWND hCombo,char *lpszText);
864void SetCursorByState(int state);
865void SetTextEditColorDesign(TEXTEDIT_COLOR_INFO *pColorInfo,CTheme *pobj_Theme,BOOL bRedraw);
866BOOL SetupProjectEditor(void);
867void EndProjectEditor(void);
868void SetupWindow(HWND hwnd);
869BOOL SetRunning(HWND hChild);
870BOOL IsNeedCompile(char *FileName,BOOL bDebug);
[80]871string GetLastErrorString();
[3]872
873//DocumentAdvice.cpp
874void MenuAdvice(WPARAM msg);
875void ShowToolTipText(LPTOOLTIPTEXT TipText);
876char *IncludeFiles(char *buffer);
877void AddParameterHints_ToProject(char *path);
878
879
880
881/////////////////////
882// テキスト エディタ
883/////////////////////
884
885#define CONTROL_TAB_SPACE_DEFAULT 10 //エディタ画面左端のコントロールタブ(通常)
886
887//DrawBuffer.cpp
888void TextEdit_DrawBuffer(HDC hdc,int WndNum);
889
890//TextEditor.cpp
891int GetControlTabSpace(int WndNum,int *piCount=0);
892void ResetTextEditFont(HWND hwnd);
893void SetTextEditWordColor(int WndNum);
894BOOL IsHiragana(char *pBuf);
895BOOL IsAlphabet(char c);
896BOOL IsReturnCode(char *pBuf);
897void ResetScrollbar(int WndNum,int max_x,int max_y);
898#define WORDCARET_BEFORE 1
899#define WORDCARET_AFTER 2
900void TextEdit_GetWordCaret(HWND hwnd,int WndNum,POINT *pPos,int *piStart,int *piEnd,BOOL bBeforeAfterFlag);
901void CancelBeforeAutoIndent(int WndNum);
902LRESULT CALLBACK TextEditProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);
903
904//Caret.cpp
905BOOL IsRightTurn(char *pBuf,int i,int now_x);
906int GetBufferIndexFromCaretPos(char *pBuf,int now_x,int now_y);
907void GetCaretPosFromBufferIndex(char *pBuf,int index,POINT *pCaretPos);
908void TextEdit_GetSel(int WndNum,CHARRANGE *pCharRange);
909void TextEdit_GetSelText(int WndNum,CHARRANGE *pCharRange,char *buffer);
910void GetScrollBaseCaretPos(int WndNum,int *pNaturalBaseX,int *pNaturalBaseY);
911void GetNaturalBaseCaretPos(int WndNum,int *pScrollBaseX,int *pScrollBaseY);
912void TextEdit_SetSel(int WndNum,int StartIndex,int EndIndex,BOOL bShowCenter=0);
913void TextEdit_SelectOneLine(int WndNum,int code_pos,BOOL bShowCenter=0);
914void ResetCaretPos(int WndNum,BOOL bInputAndReset=0);
915BOOL TextEdit_ScrollCaret(int WndNum,BOOL bScrollOneStep_x,BOOL bShowCenter=0);
916void CaretPos_LooseToNatural(int WndNum,int loose_x,int loose_y,POINT *pCaretPos);
917void GetNaturalCaretPos_Click(int WndNum,int mouse_x,int mouse_y,POINT *pCaretPos);
918void GetNaturalCaretPos_Left(int WndNum);
919void GetNaturalCaretPos_Right(int WndNum,POINT *pCaretPos);
920void GetNaturalCaretPos_Up(int WndNum,POINT *pCaretPos);
921void GetNaturalCaretPos_Down(int WndNum,POINT *pCaretPos);
922void GetNaturalCaretPos_PageUp(int WndNum,POINT *pCaretPos);
923void GetNaturalCaretPos_PageDown(int WndNum,POINT *pCaretPos);
924
925//Replace.cpp
926void TextEdit_Replace(int WndNum,char *str,BOOL bRedraw);
927void TextEdit_ReplaceUpdateUndoData(int WndNum,char *str,BOOL bPaste,BOOL bRedraw);
928void TextEdit_Convert(int id);
929
930//TextEditor_UndoRedo.cpp
931void TextEdit_UndoCommand(int WndNum);
932void TextEdit_RedoCommand(int WndNum);
933void TextEdit_NoticeChanging(int WndNum,int Command,char *KeyStr,char *DelStr,CHARRANGE *Range,CHARRANGE *DelRange);
[24]934void TextEdit_DeleteUndoData(TEXTEDIT_UNDOSTATE *pUndoState,int pos);
[3]935
936//Search.cpp
937void AddFindData(HWND hwnd,char ppData[MAX_FINDLIST][MAX_PATH],char *str);
938BOOL CALLBACK DlgFind(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);
939BOOL CALLBACK DlgPermutation(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);
940
941//analysis.cpp
942BOOL GetVarFormatString(char *buffer,char *array,char *array2,char *NestMember,int *pRefType);
943BOOL CheckReferType(char *ClassName,BOOL bArray,char *VarArray,int VarRefType);
944void GetOriginalClassName(char *ClassName);
945int GetClassPos(char *pBuf,char *ClassName,DWORD *pdwClassType);
946BOOL GetClassNameFromClassMember(char *pBuf,int iPos,char *VarName,char *ClassName,BOOL *pbArray);
947void GetCodeAreaType(char *pBuf,int iPos,int *piProcPos,char *NowClass);
948BOOL GetVariableClassName(char *pEditBuf,int iPos,char *VarName,char *ClassName,BOOL *pbArray);
949
950//EndPairCommandComplement.cpp
951BOOL GetEndPairCommandInfo(char *buffer,int p);
952BOOL IsNeedNewIndentCommand(char *name);
953void GetWithObjectVariable(char *buffer,int p,char *pObjectVar);
954
955//Complement.cpp
956void DeleteComplementInfo(void);
957BOOL GetComplementInfo(char *variable,char *pEditBuf,int iPos);
958void CodeComplement(int WndNum,int iPos);
959LRESULT CALLBACK ComplementWindow(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);
960
961//ParameterHint.cpp
962char *GetUserSourceCode(void);
963void ChangeReturnCode(char *buffer);
964void DeleteComment(char *buffer);
965LRESULT CALLBACK MethodCheckWindow(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);
966void ShowParameterHint(int WndNum);
967
968//CodeFormatter.cpp
969char *CodeFormatter(char *lpszReadBuffer);
970
971#ifdef THETEXT
972//StringCount.cpp
973BOOL CALLBACK DlgStringCount(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);
974#endif
975
976//Print.cpp
977class CPage{
978public:
979 PAGESETUPDLG psd;
980 CPage();
981 ~CPage();
982
983 BOOL SetupDlg(void);
984};
985extern CPage obj_Page;
986LRESULT CALLBACK PreviewWndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);
987void Preview(void);
988void Printout(void);
989
990//History.cpp
991#define IS_FILEHISTORY_COMMAND(a) (100<=a&&a<=199)
992class CHistory{
993 int iNum;
994 int iMaxHistoryNum;
995
996 int m_BaseID;
997public:
998 char *lpszPath[255];
999
1000 CHistory(int BaseID);
1001 ~CHistory();
1002
1003 void load(char *path);
1004 void save(char *path);
1005
1006 void add(char *path);
1007 void insert(char *path);
1008
1009 void ResetFileMenu(CSubMenuEx *pobj_SubMenu,BOOL bOwnerDraw);
1010};
1011
1012
1013
1014
1015//////////////////////
1016/* プロジェクト解析 */
1017
1018//CClassInfo.cpp
1019class CClassInfo{
1020public:
1021 char ClassName[VN_SIZE];
1022 MEMBERINFO *pMemberInfo;
1023 int MemberNum;
1024 CClassInfo();
1025 ~CClassInfo();
1026 int Analyze(char *pBuf,int *p);
1027};
1028
1029//ClassTree.cpp
1030struct TREEHASH{
1031 HTREEITEM hItem;
1032 int iFileNum;
1033 TREEHASH *pNextData;
1034};
1035#define CTV_ROOT 1 //ルート
1036#define CTV_FOLDER 2 //フォルダ
1037#define CTV_GLOBAL_PROC 3 //プロシージャ
1038#define CTV_CLASS 4 //クラス
1039#define CTV_PUBLIC_MEMBER 5 //公開cメンバ変数
1040#define CTV_PUBLIC_METHOD 6 //公開メソッド
1041#define CTV_PRIVATE_MEMBER 7 //非公開メンバ変数
1042#define CTV_PRIVATE_METHOD 8 //非公開メソッド
1043class CClassTreeView{
1044 HWND hTreeWnd;
1045 int iNowFile;
1046 TREEHASH tree_data[MAX_HASH];
1047
1048 HTREEITEM hGlobalProcedureFolder;
1049 HTREEITEM hNowClassFolder;
1050
1051 int hash_default(LONG_PTR lpdata);
1052
1053 void AddValidItem(HTREEITEM hItem,int iFileNum);
1054 BOOL delete_check(HTREEITEM hItem);
1055 void DeleteInvalidItems(HTREEITEM hItem);
1056 void DeleteTreeHash(TREEHASH *pth);
1057
1058 HTREEITEM insert(HTREEITEM hParentItem,int flag,char *lpszName,int iFileNum);
1059
1060public:
1061 HTREEITEM hRootFolder;
1062
1063 int NumberOfProcedures;
1064 PROCINFO *pProcInfo;
1065
1066 BOOL bCloseSwitch;
1067 BOOL bShowSwitch;
1068
1069 CClassTreeView();
1070 ~CClassTreeView();
1071 void init(HWND hwnd,int iFileNum);
1072
1073 void InsertRootFolder(void);
1074 void InsertGlobalProcedureFolder(void);
1075 HTREEITEM InsertGlobalProcedure(int flag,char *lpszName,int iFileNum);
1076 HTREEITEM insert_code_item(HTREEITEM hParentItem,int flag,char *lpszName,int iFileNum,char *pBuf,int p);
1077 void InsertClassFolder(char *lpszName,int iFileNum,char *pBuf,int p);
1078 void InsertClassMember(int flag,char *lpszName,int iFileNum,char *pBuf,int p);
1079 void finish();
1080};
1081extern CClassTreeView *pobj_ClassTreeView;
1082void ResetClassTree(int iFileNum);
1083
1084//ProjectControl.cpp
1085void ResizeProjectView_ToolWindow(void);
1086LRESULT CALLBACK ProjectView_ToolWindowProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);
[84]1087void ShowFileView();
1088void ShowClassView();
1089void ShowMaterialView();
[3]1090LRESULT CALLBACK ProjectViewProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);
1091void Project_File_Insert(char *path);
1092void Project_File_Delete(HTREEITEM hTreeItem);
1093void MakeNewProject(void);
1094void OpenProject(char *path);
1095BOOL ProjectModifyCheck(BOOL bRun);
1096_int8 CloseProject(void);
1097void MakeWorkFile(void);
1098void SaveProject(void);
1099BOOL SetProjectToRun(void);
1100BOOL IsNeedCompileForProject(BOOL bDebug);
1101
1102//WindowControl.cpp
1103int GetWndInfoNum(char *name);
1104HGLOBAL Rad_GetChildInfoClipboardData(int WndNum,int WndInfoNum);
1105void Rad_PasteChildInfoClipboardData(int WndNum,HGLOBAL hGlobal);
1106char *PermutationWndPgmTemplate(char *pBuf,char *pPjName, char *pWndName, char *pHandleName, char *pProcName);
1107void GetItemClassName(char *buffer,int Control);
1108void SaveWindowProgram();
1109void SaveWindowFile(char *path,WINDOW_INFO *WindowInfo,int NumberOfWindowInfo);
1110_int8 OpenWindowFile(char *path);
1111void GetDefaultWindowFont(LOGFONT *LogFont);
1112void Project_Window_Insert(void);
1113void Project_Window_Delete(int WndInfoNum);
1114
1115//Resource.cpp
1116void GetResourceData(void);
1117void Project_CursorResInsert(void);
1118void Project_Cursor_Delete(int CursorInfoNum);
1119void Project_Cursor_RenameID(int CursorInfoNum);
1120void Project_BitmapResInsert(void);
1121void Project_Bitmap_Delete(int IconInfoNum);
1122void Project_Bitmap_RenameID(int BitmapInfoNum);
1123void Project_IconResInsert(void);
1124void Project_Icon_Delete(int IconInfoNum);
1125void Project_Icon_RenameID(int IconInfoNum);
1126BOOL CALLBACK DlgProject_ResourceID_Input(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);
1127
1128
1129
1130///////////////////
1131/* RADウィンドウ */
1132
1133//RadProc.cpp
1134void NewRadWindow(int WndInfoNum);
1135int InsertDlgItem(int WndNum,int WndInfoNum,int ItemNum,POINT *pPos,SIZE *pSize,char *IdName,char *caption,DWORD style_or_WndNum,DWORD ExStyle,int Control,int ImageType,char *ImagePath,DWORD dwInsertType);
1136void DeleteDlgItem(int WndNum,int WndInfoNum,int ItemNum,BOOL bNoticeChanging);
1137void CursorPos_GlobalToLocal(HWND hwnd,long *x,long *y);
1138void DrawSelectingRect(HWND hwnd,int WndNum,int WndInfoNum,int ButtonSelect);
1139void ChangePropertyWindow(int WndNum,int WndInfoNum);
1140void ResetScrollbarOfRadEditor(int WndNum,int weight,int height);
1141LRESULT CALLBACK RadWindow(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);
1142void ResizeToRadToolWindows(int WndNum,int weight,int height);
1143LRESULT CALLBACK MDIClientWindow_Rad(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);
1144
1145//DrawWindow.cpp
1146void DrawRadWindow(int WndNum,WINDOW_INFO *pWindowInfo);
1147
1148//Rad_UndoRedo.cpp
1149void Rad_UndoCommand(int WndNum);
1150void Rad_RedoCommand(int WndNum);
1151void Rad_DeleteUndoData(int WndNum,int pos);
1152void Rad_NoticeChanging(int WndNum,int Command,int SelectItemNum,DWORD dwData);
1153
1154//RadToolsAndPropertyProc.cpp
1155LRESULT CALLBACK RadToolsWindow(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);
1156BOOL CALLBACK RadProperty_WindowProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);
1157BOOL CALLBACK DlgRadProperty_Item_RenameCaption(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);
1158BOOL CALLBACK RadProperty_ButtonProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);
1159BOOL CALLBACK RadProperty_CheckBoxProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);
1160BOOL CALLBACK RadProperty_ComboBoxProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);
1161BOOL CALLBACK RadProperty_EditProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);
1162BOOL CALLBACK RadProperty_GroupBoxProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);
1163BOOL CALLBACK RadProperty_ImageBoxProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);
1164BOOL CALLBACK RadProperty_ListBoxProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);
1165BOOL CALLBACK RadProperty_ListViewProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);
1166BOOL CALLBACK RadProperty_ProgressBarProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);
1167BOOL CALLBACK RadProperty_RadioButtonProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);
1168BOOL CALLBACK RadProperty_ScrollBarProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);
1169BOOL CALLBACK RadProperty_StaticProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);
1170BOOL CALLBACK RadProperty_TrackBarProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);
1171BOOL CALLBACK RadProperty_TreeViewProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);
1172BOOL CALLBACK RadProperty_UpDownProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);
1173LRESULT CALLBACK RadPropertyWindow(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);
1174
1175//MessageCallOperation.cpp
1176char **GetProcedureNamesOfMessageCall(int WndInfoNum,ITEMEVENTINFO **ppItemEventInfo,int *num,BOOL *pbAlways);
1177void SelectProcedureOfMessageCall(int WndInfoNum,char *ProcedureName,char *Parameter);
1178BOOL CALLBACK DlgEventCode(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);
1179
1180//RadSupport.cpp
1181LRESULT CALLBACK TestWindowProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);
1182void SetSupportDlgData(int WndNum,int WndInfoNum);
1183BOOL CALLBACK DlgRadSupport(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);
1184
1185
1186
1187////////////////////
1188/* MENUウィンドウ */
1189
1190//MenuProc.cpp
1191int GetMenuInfoNum(char *name);
1192void HeapMenuDataFree(MENU_INFO *pMenuInfo,int ItemNum,int *NumberOfFreedItem);
1193BOOL CALLBACK DlgProject_MenuID_Input(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);
1194void Project_Menu_Insert(void);
1195void Project_Menu_Delete(int MenuInfoNum);
1196void NewMenuWindow(MENU_INFO *pMenuInfo);
1197BOOL CALLBACK MenuEditDlg(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);
1198LRESULT CALLBACK MenuEditWindow(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);
1199LRESULT CALLBACK MDIClientWindow_Menu(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);
1200
1201
1202
1203//////////////////////////////////
1204/* アイコン エディタ ウィンドウ */
1205
1206//IconEditor.cpp
1207void AddIconType(int WndNum,int IconType);
1208void DeleteIconType(int WndNum);
1209void NewIconEditWindow(char *filepath);
1210void SaveIconFile(char *filepath,HWND hwnd);
1211LRESULT CALLBACK MDIClientWindow_IconEdit(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);
1212
1213//IconEditor_Main.cpp
1214HGLOBAL IconEdit_GetChildInfoClipboardData(int WndNum);
1215void IconEdit_PasteChildInfoClipboardData(int WndNum,HBITMAP hBmp);
1216void IconEdit_PasteImage(int WndNum);
1217void DrawIconToMemBmp(int WndNum,RECT *pRect);
1218void IconEdit_EraseRect(int WndNum,RECT *pRect);
1219LRESULT CALLBACK IconEditWindowProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);
1220
1221//IconEditor_Tool.cpp
1222BOOL CALLBACK DlgIconButtons(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);
1223BOOL CALLBACK DlgIconToolProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);
1224
1225//IconEditor_Color.cpp
1226BOOL CALLBACK DlgIconColorProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);
1227
1228//IconEditor_UndoRedo.cpp
1229void IconEdit_UndoCommand(int WndNum);
1230void IconEdit_RedoCommand(int WndNum);
1231void IconEdit_NoticeChanging(int WndNum);
1232
1233
1234
1235
1236
1237#include "NonVolatile.h"
1238
1239
1240
1241
1242#ifdef _DEBUG
1243/*Debug*/
1244
1245#define HeapAlloc CheckHeapAlloc
1246#define HeapReAlloc CheckHeapReAlloc
1247LPVOID CheckHeapAlloc(HANDLE hHeap,DWORD dwFlags,DWORD dwBytes);
1248LPVOID CheckHeapReAlloc(HANDLE hHeap,DWORD dwFlags,LPVOID lpMem,DWORD dwBytes);
1249
1250#define DeleteObject CheckDeleteObject
1251BOOL CheckDeleteObject(HGDIOBJ hObject);
1252
1253#endif
Note: See TracBrowser for help on using the repository browser.