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

Last change on this file since 450 was 450, checked in by dai_9181, 15 years ago

htmlhelp.hをリポジトリに含めた

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