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

Last change on this file since 601 was 601, checked in by dai_9181, 16 years ago

BasicFixed.hをab_commonプロジェクトに移動。

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