source: dev/ProjectEditor/Common.h@ 125

Last change on this file since 125 was 125, checked in by dai_9181, 17 years ago

rev.248を刻印。
Exception.hのパスが通ってなかったので修正。

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