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

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

ProjectInfo構造体のpWindowInfoメンバをwindowInfosメンバに置き換えた。

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