source: dev/ProjectEditor/Common.h@ 3

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