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

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

構成管理を大幅に改良。

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