source: dev/ProjectEditor/Common.h@ 61

Last change on this file since 61 was 61, checked in by dai_9181, 18 years ago

バージョンをβ13にした

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