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

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

静的リンクライブラリプロジェクトの作成(IDE側)に対応。

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