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

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

下記メッセージをMainFrameクラスに実装しなおした
WM_TIMER
WM_DRAWCLIPBOARD
WM_MENUSELECT
WM_INITMENU
WM_MEASUREITEM
WM_DRAWITEM
WM_NOTIFY

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