source: dev/ProjectEditor/Common.h@ 22

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

バックアップ用ディレクトリが消去されていたときは、自動生成する。
プロ版の概念を除去。機能制限を解除。

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