• R/O
  • SSH
  • HTTPS

bkopenurl: コミット


コミットメタ情報

リビジョン1 (tree)
日時2010-11-18 17:41:42
作者bnr32

ログメッセージ

初回コミット

変更サマリ

差分

--- trunk/ClipBoardPushPop.pas (nonexistent)
+++ trunk/ClipBoardPushPop.pas (revision 1)
@@ -0,0 +1,184 @@
1+{
2+------------------------------------------------------------------------
3+ Clipborad PUSH and POP
4+ Copyright(C) 2000 K2
5+------------------------------------------------------------------------
6+}
7+unit ClipBoardPushPop;
8+
9+interface
10+
11+uses
12+ Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
13+ Clipbrd, StdCtrls;
14+
15+type
16+ TClipHist = class(TCollection)
17+ private
18+ public
19+ constructor Create;
20+ procedure Push;
21+ procedure Pop;
22+ function CanPop: Boolean;
23+ private
24+ procedure Delete(Index: Integer);
25+ end;
26+
27+
28+implementation
29+
30+type
31+ TClipObj = class
32+ private
33+ FCf: integer;
34+ FStream: TStream;
35+ public
36+ constructor Create;
37+ destructor Destroy; override;
38+ procedure SetToClipboard;
39+ procedure GetFromClipboard(Cf: integer);
40+ end;
41+
42+ TClipHistItem = class(TCollectionItem)
43+ private
44+ FList: TList;
45+ public
46+ constructor Create(Collection: TCollection); override;
47+ destructor Destroy; override;
48+ procedure SetToClipboard;
49+ procedure GetFromClipboard;
50+ procedure Clear;
51+ end;
52+
53+{ TClipObj }
54+
55+constructor TClipObj.Create;
56+begin
57+ FStream := TMemoryStream.Create;
58+end;
59+
60+destructor TClipObj.Destroy;
61+begin
62+ inherited;
63+ FStream.Free;
64+end;
65+
66+procedure TClipObj.GetFromClipboard(Cf: integer);
67+var
68+ h: THandle;
69+ Size: integer;
70+ d: PBYTE;
71+begin
72+ FStream.Size := 0;
73+ FCf := Cf;
74+ h := Clipboard.GetAsHandle(Cf);
75+ if h = 0 then exit;
76+ Size := GlobalSize(h);
77+ if Size = 0 then exit;
78+ d := GlobalLock(h);
79+ FStream.Write(d^, Size);
80+ GlobalUnlock(h);
81+end;
82+
83+procedure TClipObj.SetToClipboard;
84+var
85+ h: THandle;
86+ d: PBYTE;
87+begin
88+ h := GlobalAlloc(GMEM_SHARE or GHND, FStream.Size);
89+ if h = 0 then raise Exception.Create('メモリ確保エラー');
90+ FStream.Position := 0;
91+ d := GlobalLock(h);
92+ FStream.Read(d^, FStream.Size);
93+ GlobalUnlock(h);
94+ Clipboard.SetAsHandle(FCf, h);
95+end;
96+
97+{ TClipHistItem }
98+
99+procedure TClipHistItem.Clear;
100+var
101+ i: integer;
102+begin
103+ for i := 0 to FList.Count - 1 do
104+ TClipObj(FList[i]).Free;
105+ FList.Clear;
106+end;
107+
108+constructor TClipHistItem.Create(Collection: TCollection);
109+begin
110+ inherited Create(Collection);
111+ FList := TList.Create;
112+end;
113+
114+destructor TClipHistItem.Destroy;
115+begin
116+ inherited;
117+ Clear;
118+ FList.Free;
119+end;
120+
121+procedure TClipHistItem.GetFromClipboard;
122+var
123+ i: integer;
124+ CO: TClipObj;
125+begin
126+ Clear;
127+ for i := 0 to Clipboard.FormatCount - 1 do
128+ begin
129+ CO := TClipObj.Create;
130+ FList.Add(CO);
131+ CO.GetFromClipboard(Clipboard.Formats[i]);
132+ end;
133+end;
134+
135+procedure TClipHistItem.SetToClipboard;
136+var
137+ i: integer;
138+begin
139+ for i := 0 to FList.Count - 1 do
140+ TClipObj(FList[i]).SetToClipboard;
141+end;
142+
143+{ TClipHist }
144+
145+function TClipHist.CanPop: Boolean;
146+begin
147+ Result := (Count > 0);
148+end;
149+
150+constructor TClipHist.Create;
151+begin
152+ inherited Create(TClipHistItem);
153+end;
154+
155+procedure TClipHist.Pop;
156+begin
157+ if Count = 0 then exit;
158+ Clipboard.Open;
159+ try
160+ Clipboard.Clear;
161+ TClipHistItem(Items[Count - 1]).SetToClipboard;
162+ Delete(Count - 1);
163+ finally
164+ Clipboard.Close;
165+ end;
166+end;
167+
168+procedure TClipHist.Push;
169+begin
170+ Clipboard.Open;
171+ try
172+ TClipHistItem(Add).GetFromClipboard;
173+ finally
174+ Clipboard.Close;
175+ end;
176+end;
177+
178+procedure TClipHist.Delete(Index: Integer);
179+begin
180+ Items[Index].Free;
181+end;
182+
183+end.
184+
--- trunk/OpenURL.txt (nonexistent)
+++ trunk/OpenURL.txt (revision 1)
@@ -0,0 +1,60 @@
1+-----------------------------------------------------------------
2+ OpenURL plug-in for B2
3+ Naoki KOBAYASHI
4+-----------------------------------------------------------------
5+
6+■ 概要
7+選択した文字列をそのまま URL として開く……。それだけ(^^)
8+
9+選択した範囲内の改行コードは取り除くので、複数行に渡っている極悪な
10+URL もワンタッチで開くことができます。
11+
12+日本語が URL に使われているような極悪な場合にも便利だね(--;
13+
14+■ 注意!!
15+
16+このプラグインで " 選択文字列を URL と見なして開く " を実行するとク
17+リップボード経由で文字列を取得するため、クリップボード履歴ソフトを
18+使っていると、そこへ登録されます。
19+これは、仕様制限ですので、納得の上ご使用下さい。
20+
21+■ 操作方法
22+View 画面で URL として開きたい文字列を選択して、右クリック ->
23+URL とみなして開く…を実行して下さい。
24+
25+■ 配布
26+・書籍等への収録やソフトへのバンドルなどを行う際は必ず連絡をお願
27+ い致します。 収録雑誌等がほしいです(^^)
28+・ネットワークでの配布は,自由に配布して下さいませ。 何の連絡も必
29+ 要ございません(^^;
30+
31+■ サポート
32+B2 プラグイン ML で受け付けます。 B2 ML も一応見てるので、そっちで
33+もオーケーかな?
34+
35+■ 履歴
36+
37+■ 謝辞
38+ ○ B2 Plugin 開発に Delphi テンプレートを使用させて頂いています。
39+ http://www02.so-net.ne.jp/~rando/index-j.html
40+
41+■ 開発環境・動作確認環境
42+ThinkPad X21 (Celeron 500MH'z 320MB RAM)
43+Microsoft Microsoft Windows 2000 sp2
44+Borland Delphi4 std Update Pack3
45+
46+■ ソースコードについて
47+
48+ClipBoardPushPop.pas の Clipboard PUSH,POP クラスの著作権はK2さん
49+にあります。
50+
51+BeckyAPI.pas の著作権は Ryota Ando さんにあります。
52+# 詳しくは BeckyAPI.pas の先頭部分を参照のこと。
53+
54+上記著作権表示を変えなければ、ご自由にソースコードを使用することが
55+できます。
56+
57+--
58+Naoki Kobayashi (mailto:kobaya-n@sam.hi-ho.ne.jp)
59+http://www.sam.hi-ho.ne.jp/kobaya-n/
60+http://www.vector.co.jp/authors/VA013786/plugin.html
--- trunk/BkOpenURL.dpr (nonexistent)
+++ trunk/BkOpenURL.dpr (revision 1)
@@ -0,0 +1,570 @@
1+library BkOpenURL;
2+////////////////////////////////////////////////////////////////////////////////// Test DLL for plugin.
3+//
4+(*
5+Copyright (c) 2000 Ryota Ando <rando@ca2.so-net.ne.jp> All rights reserved.
6+
7+NOTICE:
8+You can freely use, modify, redistribute this source code unless you modify
9+this notice. This software is provided by the author and contributors 'AS IS'
10+and any express or implied warranties are disclaimed.
11+
12+Note:
13+ BeckyAPI.pas must be exist in either specified library folder (recommended)
14+ or the same folder as .dpr file.
15+*)
16+
17+uses
18+ Windows,
19+ Sysutils,
20+ Classes,
21+ Messages,
22+ Clipbrd,
23+ Shellapi,
24+ BeckyAPI,
25+ Dialogs,
26+ IniFiles,
27+ ClipBoardPushPop;
28+
29+const
30+ Ver = '1.000';
31+
32+//const
33+// g_hInstance : Longint = 0; // not used
34+
35+var
36+ bka : TBeckyAPI; // You can have only one instance in a project.
37+ szIni : array[0..MAX_PATH+2] of char; // Ini file to save your plugin settings.
38+ SaveExit : Pointer; //delphi specific
39+
40+ DataFolder:String;
41+ PlugInFolder:String;
42+ BrowserPath:String;
43+
44+ g_nIDOpenURL: UINT;
45+ g_nIDHttpOpenURL: UINT;
46+ g_nIDMailtoOpenURL: UINT;
47+ g_nIDFtpOpenURL: UINT;
48+ g_nIDExpOpenURL: UINT;
49+
50+{$R *.RES}
51+
52+/////////////////////////////////////////////////////////////////////////////
53+// DLL entry point
54+(*
55+BOOL APIENTRY DllMain( HANDLE hModule,
56+ DWORD ul_reason_for_call,
57+ LPVOID lpReserved
58+ )
59+procedure LibraryProc(reason : Integer);
60+begin
61+ g_hInstance := HInstance;
62+ case ul_reason_for_call of
63+ DLL_PROCESS_ATTACH:
64+ begin
65+ LibInit;
66+ end;
67+ DLL_THREAD_ATTACH:
68+ break;
69+ DLL_THREAD_DETACH:
70+ break;
71+ DLL_PROCESS_DETACH:
72+ break;
73+ end;
74+end;
75+*)
76+
77+(*
78+ *** Delphi-specific issue ***
79+ You must not create forms in LibInit. It causes GPF.
80+ Forms should be created in BKC_OnStart or other routines (on demand).
81+*)
82+function LibInit : boolean;
83+var
84+ lpExt : PChar;
85+begin
86+ try
87+ bka := TBeckyAPI.Create;
88+ if not bka.InitAPI then
89+ begin
90+ Result := FALSE;
91+ exit;
92+ end;
93+ GetModuleFileName(HInstance, szIni, MAX_PATH);
94+ lpExt := StrRScan(szIni, '.');
95+ if lpExt <> nil then
96+ begin
97+ StrCopy(lpExt, '.ini');
98+ end
99+ else
100+ begin
101+ // just in case
102+ strcat(szIni, '.ini');
103+ end;
104+ except
105+ Result := FALSE;
106+ exit;
107+ end;
108+ Result := TRUE;
109+end;
110+
111+procedure LibExit;
112+begin
113+ if bka <> nil then
114+ bka.Destroy;
115+ bka := nil;
116+ ExitProc := SaveExit; // set original finalization procedure chain
117+end;
118+
119+function GetSelfFileName: String;
120+var
121+ buf: array[0..MAX_PATH-1] of char;
122+ R: Integer;
123+begin
124+ R := GetModuleFileName(HInstance, @buf, MAX_PATH);
125+ Result := Copy(buf, 1, R -1);
126+end;
127+
128+function MyShellExecute(const BrowserName, URL: String ): Boolean;
129+var
130+ myInfo: SHELLEXECUTEINFO;
131+begin
132+ // prepare SHELLEXECUTEINFO structure
133+ // http://hp.vector.co.jp/authors/VA024411/vbtips02.html
134+ ZeroMemory(@myInfo, SizeOf(SHELLEXECUTEINFO));
135+ myInfo.cbSize := SizeOf(SHELLEXECUTEINFO);
136+ myInfo.fMask := SEE_MASK_NOCLOSEPROCESS;
137+ myInfo.lpFile := PChar(BrowserName);
138+ myInfo.lpParameters := PChar(URL);
139+
140+ // start file
141+ Result := ShellExecuteEx(@myInfo);
142+end;
143+
144+//*************************************************************
145+//
146+// コマンドが実行されたよ(選択文字列を URL と見なして開く)
147+//
148+// LPARAM : LOWORD = COMMAND ID
149+//
150+procedure ProcOpenURL(h : HWND; LPARAM : Longint); stdcall;
151+const
152+ BKC_COPY = $E122; { 編集 -> コピー }
153+var
154+ hTargetMenu: HMENU;
155+ hMain, hDmy: HWND;
156+ MenuPos: Integer;
157+ i, j, textlen: Integer;
158+ clip: TClipboard;
159+ p, p2: PChar;
160+ buf: String;
161+ clip_pp: TClipHist;
162+begin
163+ bka.GetWindowHandles(@hMain, @hDmy, @hDmy, @hDmy);
164+ hTargetMenu := GetMenu(hMain);
165+ if hTargetMenu = 0 then
166+ exit;
167+
168+ { 編集メニューID }
169+ hTargetMenu := GetSubMenu(hTargetMenu, 1);
170+ SendMessage(hMain, WM_INITMENUPOPUP, hTargetMenu, MakeLParam(0, 0));
171+
172+ for MenuPos:=0 to GetMenuItemCount(hTargetMenu) - 1 do
173+ begin
174+ { 編集 -> コピーを探す }
175+ if GetMenuItemID(hTargetMenu, MenuPos) = BKC_COPY then
176+ begin
177+ { 編集 -> コピーが灰色なら選択文字列無し }
178+ if (GetMenuState(hTargetMenu, MenuPos, MF_BYPOSITION) and MF_GRAYED) = 0 then
179+ begin
180+ { コピー操作を行う }
181+ clip_pp := TClipHist.Create;
182+ try
183+ clip_pp.Push;
184+ SendMessage(hMain, WM_COMMAND, BKC_COPY, 0);
185+ clip := TClipboard.Create();
186+ p := StrAlloc(2048);
187+ p2 := StrAlloc(2048);
188+ try
189+ textlen := clip.GetTextBuf(p, 2048-1);
190+ if(textlen <> 0) then
191+ begin
192+ j := 0;
193+ for i:=0 to textlen - 1 do
194+ begin
195+ { 改行コードは不要 }
196+ if (p[i] <> #13) and (p[i] <> #10) then
197+ begin
198+ p2[j] := p[i];
199+ Inc(j);
200+ end;
201+ end;
202+ { 前後のスペースを取り除く }
203+ p2[j] := #0;
204+ buf := p2;
205+ buf := Trim(buf);
206+ { 文字列を付加 }
207+ // http:// と見なして開く
208+ if LPARAM = g_nIDHttpOpenURL then
209+ begin
210+ buf := 'http://' + buf;
211+ end // mailto: と見なして開く
212+ else if LPARAM = g_nIDMailtoOpenURL then
213+ begin
214+ buf := 'mailto:' + buf;
215+ end
216+ else if LPARAM = g_nIDFtpOpenURL then
217+ begin
218+ buf := 'ftp://' + buf;
219+ end
220+ else if LPARAM = g_nIDExpOpenURL then
221+ begin
222+ if Pos('<',buf) = 1 then
223+ begin
224+ buf := Copy(buf,2,Length(buf));
225+ if Pos('>',buf) = length(buf) then
226+ begin
227+ buf := Copy(buf,1,Length(buf)-1);
228+ end;
229+ end;
230+ if (AnsiPos('<',buf) = 1) and (AnsiPos('>',buf) = length(buf)-1) then
231+ begin
232+ buf := Copy(buf,3,Length(buf));
233+ buf := Copy(buf,1,Length(buf)-2);
234+ end;
235+ if Pos('"',buf) = 1 then
236+ begin
237+ buf := Copy(buf,2,Length(buf));
238+ if Pos('"',buf) = length(buf) then
239+ begin
240+ buf := Copy(buf,1,Length(buf)-1);
241+ end;
242+ end;
243+ if (AnsiPos('”',buf) = 1) and (AnsiPos('”',buf) = length(buf)-1) then
244+ begin
245+ buf := Copy(buf,3,Length(buf));
246+ buf := Copy(buf,1,Length(buf)-2);
247+ end;
248+ if (AnsiPos('「',buf) = 1) and (AnsiPos('」',buf) = length(buf)-1) then
249+ begin
250+ buf := Copy(buf,3,Length(buf));
251+ buf := Copy(buf,1,Length(buf)-2);
252+ end;
253+ if (Pos('\\',buf) <> 1) and (Pos(':\',Buf) = 0) then
254+ begin
255+ buf := '\\' + buf;
256+ end;
257+ end;
258+ // デバッグ用
259+// ShowMessage(buf);
260+ { 実行 }
261+ if ( BrowserPath <> '' ) and
262+ ( ( LPARAM = g_nIDOpenURL ) or
263+ ( LPARAM = g_nIDHttpOpenURL )
264+ ) then
265+ begin
266+// MyShellExecute( '"C:\Program Files\Mozilla Firefox\firefox.exe"', buf );
267+// MyShellExecute( '"C:\Users\hogehoge\AppData\Local\Google\Chrome\Application\chrome.exe"', buf);
268+ MyShellExecute( BrowserPath, buf );
269+ end
270+ else
271+ begin
272+ ShellExecute(hMain, 'open', PChar(buf), nil, nil, SW_SHOW);
273+ end;
274+ end;
275+ finally
276+ StrDispose(p);
277+ StrDispose(p2);
278+ clip.Free;
279+ end;
280+ finally
281+ clip_pp.Pop;
282+ clip_pp.Free;
283+ end;
284+ end;
285+ end;
286+ end;
287+end;
288+
289+/////////////////////////////////////////////////////////////////////////////////////////////
290+// Callbacks from Becky!
291+
292+////////////////////////////////////////////////////////////////////////
293+// Called when the program is started and the main window is created.
294+function BKC_OnStart : Integer; stdcall;
295+var
296+ AppIni:TIniFile;
297+begin
298+ (*
299+ Since BKC_OnStart is called after Becky!'s main window is
300+ created, at least BKC_OnMenuInit with BKC_MENU_MAIN is called
301+ before BKC_OnStart. So, do not assume BKC_OnStart is called
302+ prior to any other callback.
303+ *)
304+ // Always return 0.
305+
306+DataFolder:=bka.GetDataFolder;
307+PlugInFolder:=ExtractFileDir(GetSelfFileName)+'\';
308+
309+AppIni:=TIniFile.Create(PluginFolder+'BkOpenURL.ini');
310+with AppIni do
311+begin
312+ try
313+ BrowserPath:=ReadString('Browser','Path','');
314+ finally
315+ AppIni.Free;
316+ end;
317+end;
318+
319+ Result := 0;
320+end;
321+
322+////////////////////////////////////////////////////////////////////////
323+// Called when the main window is closing.
324+function BKC_OnExit : Integer; stdcall;
325+begin
326+
327+ // Return -1 if you don't want to quit.
328+ Result := 0;
329+end;
330+
331+////////////////////////////////////////////////////////////////////////
332+// Called when menu is intialized.
333+function BKC_OnMenuInit(hTargetWnd : HWND; hTargetMenu : HMENU; nType : Integer) : Integer; stdcall;
334+const
335+ MENU0_STRING = '選択文字列を URL と見なして開く';
336+ // g_nIDOpenURL
337+ MENU1_STRING = 'URL と見なして開く';
338+ MENU1_STATUSBAR_STRING = '選択文字列を URL と見なして開きます';
339+ // g_nIDHttpOpenURL
340+ MENU2_STRING = 'http:// を付加して開く';
341+ MENU2_STATUSBAR_STRING = '選択文字列に http:// を付加して開きます';
342+ // g_nIDMailtoOpenURL
343+ MENU3_STRING = 'mailto: を付加して開く';
344+ MENU3_STATUSBAR_STRING = '選択文字列に mailto: を付加して開きます';
345+ // g_nIDFtpOpenURL
346+ MENU4_STRING = 'ftp:// を付加して開く';
347+ MENU4_STATUSBAR_STRING = '選択文字列に ftp:// を付加して開きます';
348+ // g_nIDExpOpenURL
349+ MENU5_STRING = 'Explorer で開く';
350+ MENU5_STATUSBAR_STRING = '選択文字列を Explorer で開きます';
351+ BKC_PROPERTY = $80A7; { プロパティ }
352+var
353+ MenuPos: Integer;
354+ hSubMenu: HMENU;
355+begin
356+ case nType of
357+{ BKC_MENU_MAIN: ; }
358+{ BKC_MENU_LISTVIEW: ; }
359+{ BKC_MENU_TREEVIEW: ; }
360+ BKC_MENU_MSGVIEW:
361+ begin
362+ { プロパティの前にメニューを入れる }
363+ for MenuPos:=0 to GetMenuItemCount(hTargetMenu) - 1 do
364+ begin
365+ if GetMenuItemID(hTargetMenu, MenuPos) = BKC_PROPERTY then
366+ break;
367+ end;
368+ hSubMenu := CreatePopupMenu;
369+
370+ // Explorer
371+ g_nIDExpOpenURL := bka.RegisterCommand(MENU5_STATUSBAR_STRING, nType, @ProcOpenURL);
372+ AppendMenu(hSubMenu, MF_BYPOSITION or MF_STRING, g_nIDExpOpenURL, MENU5_STRING);
373+ // SEPARATOR
374+ AppendMenu(hSubMenu, MF_BYPOSITION or MF_SEPARATOR, 0, nil);
375+ // URL
376+ g_nIDOpenURL := bka.RegisterCommand(MENU1_STATUSBAR_STRING, nType, @ProcOpenURL);
377+ AppendMenu(hSubMenu, MF_BYPOSITION or MF_STRING, g_nIDOpenURL, MENU1_STRING);
378+ // SEPARATOR
379+ AppendMenu(hSubMenu, MF_BYPOSITION or MF_SEPARATOR, 0, nil);
380+ // http://
381+ g_nIDHttpOpenURL := bka.RegisterCommand(MENU2_STATUSBAR_STRING, nType, @ProcOpenURL);
382+ AppendMenu(hSubMenu, MF_BYPOSITION or MF_STRING, g_nIDHttpOpenURL, MENU2_STRING);
383+ // mailto:
384+ g_nIDMailtoOpenURL := bka.RegisterCommand(MENU3_STATUSBAR_STRING, nType, @ProcOpenURL);
385+ AppendMenu(hSubMenu, MF_BYPOSITION or MF_STRING, g_nIDMailtoOpenURL, MENU3_STRING);
386+ // ftp://
387+ g_nIDFtpOpenURL := bka.RegisterCommand(MENU4_STATUSBAR_STRING, nType, @ProcOpenURL);
388+ AppendMenu(hSubMenu, MF_BYPOSITION or MF_STRING, g_nIDFtpOpenURL, MENU4_STRING);
389+
390+ InsertMenu(hTargetMenu, MenuPos, MF_BYPOSITION or MF_SEPARATOR, 0, nil);
391+ InsertMenu(hTargetMenu, MenuPos, MF_BYPOSITION or MF_STRING or MF_POPUP, hSubMenu, MENU0_STRING);
392+
393+ end;
394+{ BKC_MENU_MSGEDIT: ; }
395+{ BKC_MENU_TASKTRAY: ; }
396+{ BKC_MENU_COMPOSE: ; }
397+{ BKC_MENU_COMPEDIT: ; }
398+{ BKC_MENU_COMPREF: ; }
399+ else ;
400+ end;
401+ // Always return 0.
402+ Result := 0;
403+end;
404+
405+////////////////////////////////////////////////////////////////////////
406+// Called when a folder is opened.
407+function BKC_OnOpenFolder(lpFolderID: PChar) : Integer; stdcall;
408+begin
409+ // Always return 0.
410+ Result := 0;
411+end;
412+
413+////////////////////////////////////////////////////////////////////////
414+// Called when a mail is selected.
415+function BKC_OnOpenMail(lpMailID : PChar) : Integer; stdcall;
416+begin
417+ // Always return 0.
418+ Result := 0;
419+end;
420+
421+////////////////////////////////////////////////////////////////////////
422+// Called every minute.
423+function BKC_OnEveryMinute : Integer; stdcall;
424+begin
425+ // Always return 0.
426+ Result := 0;
427+end;
428+
429+////////////////////////////////////////////////////////////////////////
430+// Called when a compose windows is opened.
431+function BKC_OnOpenCompose(hTargetWnd : HWND; nMode : Integer(* See COMPOSE_MODE_* in BeckyApi.h *)) : Integer; stdcall;
432+begin
433+ // Always return 0.
434+ Result := 0;
435+end;
436+
437+////////////////////////////////////////////////////////////////////////
438+// Called when the composing message is saved.
439+function BKC_OnOutgoing(hTargetWnd : HWND; nMode : Integer(* 0:SaveToOutbox, 1:SaveToDraft, 2:SaveToReminder*)) : Integer; stdcall;
440+begin
441+ // Return -1 if you do not want to send it yet.
442+ Result := 0;
443+end;
444+
445+////////////////////////////////////////////////////////////////////////
446+// Called when a key is pressed.
447+function BKC_OnKeyDispatch(hTargetWnd : HWND; nKey : Integer(* key code *); nShift : Integer(* Shift state. 0x40:=Shift, 0x20:=Ctrl, 0x60:=Shift+Ctrl, 0xfe:=Alt*)) : Integer; stdcall;
448+begin
449+ // Return TRUE if you want to suppress subsequent command associated to this key.
450+ Result := 0;
451+end;
452+
453+////////////////////////////////////////////////////////////////////////
454+// Called when a message is retrieved and saved to a folder
455+function BKC_OnRetrieve(lpMessage : PChar(* Message source*); lpMailID : PChar(* Mail ID*)) : Integer; stdcall;
456+begin
457+ // Always return 0.
458+ Result := 0;
459+end;
460+
461+////////////////////////////////////////////////////////////////////////
462+// Called when a message is spooled
463+function BKC_OnSend(lpMessage : PChar(* Message source *)) : Integer; stdcall;
464+begin
465+ // Return BKC_ONSEND_PROCESSED, if you have processed this message
466+ // and don't need Becky! to send it.
467+ // Becky! will move this message to Sent box when the sending
468+ // operation is done.
469+ // CAUTION: You are responsible for the destination of this
470+ // message if you return BKC_ONSEND_PROCESSED.
471+
472+ // Return BKC_ONSEND_ERROR, if you want to cancel the sending operation.
473+ // You are responsible for displaying an error message.
474+
475+ // Return 0 to proceed the sending operation.
476+ Result := 0;
477+end;
478+
479+////////////////////////////////////////////////////////////////////////
480+// Called when all messages are retrieved
481+function BKC_OnFinishRetrieve(nNumber : Integer(* Number of messages*)) : Integer; stdcall;
482+begin
483+ // Always return 0.
484+ Result := 0;
485+end;
486+
487+////////////////////////////////////////////////////////////////////////
488+// Called when plug-in setup is needed.
489+function BKC_OnPlugInSetup(hTargetWnd : HWND) : Integer; stdcall;
490+begin
491+ // Return nonzero if you have processed.
492+ // return 1;
493+ Result := 0;
494+end;
495+
496+////////////////////////////////////////////////////////////////////////
497+// Called when plug-in information is being retrieved.
498+type
499+ tagBKPLUGININFO = record
500+ szPlugInName : array[0..80-1] of char; // Name of the plug-in
501+ szVendor : array[0..80-1] of char; // Name of the vendor
502+ szVersion : array[0..80-1] of char; // Version string
503+ szDescription : array[0..256-1] of char; // Short description about this plugin
504+ end;
505+ BKPLUGININFO = tagBKPLUGININFO;
506+ LPBKPLUGININFO = ^tagBKPLUGININFO;
507+
508+function BKC_OnPlugInInfo(lpPlugInInfo : LPBKPLUGININFO) : Integer; stdcall;
509+begin
510+ (* You MUST specify at least szPlugInName and szVendor.
511+ otherwise Becky! will silently ignore your plug-in. *)
512+ StrCopy(lpPlugInInfo^.szPlugInName, 'BkOpenURL Plugin');
513+ StrCopy(lpPlugInInfo^.szVendor, 'Y.Takayanagi');
514+ StrCopy(lpPlugInInfo^.szVersion, PChar(Ver));
515+ StrCopy(lpPlugInInfo^.szDescription, 'OpenURLプラグインの改造版です。');
516+ // Always return 0.
517+ Result := 0;
518+end;
519+
520+////////////////////////////////////////////////////////////////////////
521+// Called when drag and drop operation occurs.
522+function BKC_OnDragDrop(lpTgt : PChar; lpSrc : PChar; nCount : Integer; dropEffect : Integer) : Integer; stdcall;
523+begin
524+ (*
525+ lpTgt: A folder ID of the target folder.
526+ You can assume it is a root mailbox, if the string
527+ contains only one '\' character.
528+ lpSrc: Either a folder ID or mail IDs. Multiple mail IDs are
529+ separated by #$0a.
530+ You can assume it is a folder ID, if the string
531+ doesn't contain '?' character.
532+ nCount: Number of items to be dropped.
533+ It can be more than one, if you drop mail items.
534+ dropEffect: Type of drag and drop operation
535+ 1: Copy
536+ 2: Move
537+ 4: Link (Used for filtering setup in Becky!)
538+ *)
539+ // If you want to cancel the default drag and drop action,
540+ // return -1;
541+ // Do not assume the default action (copy, move, etc.) is always
542+ // processed, because other plug-ins might cancel the operation.
543+ Result := 0;
544+end;
545+
546+exports
547+BKC_OnStart index 1,
548+BKC_OnExit index 2,
549+BKC_OnMenuInit index 3,
550+BKC_OnOpenFolder index 4,
551+BKC_OnOpenMail index 5,
552+BKC_OnEveryMinute index 6,
553+BKC_OnOpenCompose index 7,
554+BKC_OnOutgoing index 8,
555+BKC_OnKeyDispatch index 9,
556+BKC_OnRetrieve index 10,
557+BKC_OnSend index 11,
558+BKC_OnFinishRetrieve index 12,
559+BKC_OnPlugInSetup index 13,
560+BKC_OnPlugInInfo index 14,
561+BKC_OnDragDrop index 15;
562+
563+begin
564+ if LibInit then
565+ ExitCode := 0 // succeeded
566+ else
567+ ExitCode := 1; // failed
568+ SaveExit := ExitProc; // save original finalization procedure chain
569+ ExitProc := @LibExit; // set new finalization procedure LibExit
570+end.
--- trunk/BeckyAPI.pas (nonexistent)
+++ trunk/BeckyAPI.pas (revision 1)
@@ -0,0 +1,299 @@
1+unit BeckyAPI;
2+(*
3+Becky! API class library for Delphi
4+
5+This code is based on BeckyAPI.h and BeckyAPI.cpp in B2PinSDK-beta11.zip
6+
7+COPYRIGHT NOTICE:
8+Copyright (c) 2000 All rights reserved.
9+Original C++ code was written by Tomohiro Norimatsu.
10+Translated to PASCAL for Borland Delphi(TM) by Ryota Ando.
11+
12+You can freely use, modify, redistribute this source code unless you modify
13+this notice. This software is provided by the author and contributors 'AS IS'
14+and any express or implied warranties are disclaimed.
15+*)
16+
17+interface
18+
19+uses
20+ Windows, Sysutils, Classes;
21+
22+//#include 'BeckyAPI.h'
23+const
24+BKC_MENU_MAIN = 0;
25+BKC_MENU_LISTVIEW = 1;
26+BKC_MENU_TREEVIEW = 2;
27+BKC_MENU_MSGVIEW = 3;
28+BKC_MENU_MSGEDIT = 4;
29+BKC_MENU_TASKTRAY = 5;
30+BKC_MENU_COMPOSE = 10;
31+BKC_MENU_COMPEDIT = 11;
32+BKC_MENU_COMPREF = 12;
33+
34+BKC_ONSEND_ERROR = -1;
35+BKC_ONSEND_PROCESSED = -2;
36+
37+MESSAGE_READ = $00000001;
38+MESSAGE_FORWARDED = $00000002;
39+MESSAGE_REPLIED = $00000004;
40+MESSAGE_ATTACHMENT = $00000008;
41+MESSAGE_PARTIAL = $00000100;
42+MESSAGE_REDIRECT = $00000200;
43+
44+COMPOSE_MODE_COMPOSE1 = 0;
45+COMPOSE_MODE_COMPOSE2 = 1;
46+COMPOSE_MODE_COMPOSE3 = 2;
47+COMPOSE_MODE_TEMPLATE = 3;
48+COMPOSE_MODE_REPLY1 = 5;
49+COMPOSE_MODE_REPLY2 = 6;
50+COMPOSE_MODE_REPLY3 = 7;
51+COMPOSE_MODE_FORWARD1 = 10;
52+COMPOSE_MODE_FORWARD2 = 11;
53+COMPOSE_MODE_FORWARD3 = 12;
54+
55+BKMENU_CMDUI_DISABLED = 1;
56+BKMENU_CMDUI_CHECKED = 2;
57+
58+type
59+ PHWND = ^HWND;
60+ PBECKYCALLBACK = ^TBeckyCallBackFunc;
61+ TBeckyCallBackFunc = procedure(hTargetWnd : HWND; LPARAM : Longint);
62+ PBECKYUICALLBACK = ^TBeckyUICallBackFunc;
63+ TBeckyUICallBackFunc = function(hTargetWnd : HWND; LPARAM : Longint) : UINT;
64+ TBeckyConverter = function(lpSrc : PChar; bEncode : boolean) : PChar; stdcall;
65+ TBeckyMIMEConverter = function(lpszOutFile : PChar; lpszInFile : PChar; bEncode : boolean) : boolean; stdcall;
66+
67+ TBeckyAPI = class
68+ public
69+ GetVersion : function : PChar; stdcall;
70+ Command : procedure(hTargetWnd : HWND; lpCmd : PChar); stdcall;
71+ GetWindowHandles : function(lphMain : PHWND; lphTree : PHWND; lphList : PHWND; lphView : PHWND) : BOOL; stdcall;
72+ RegisterCommand : function(lpszComment : PChar; nTarget : Integer; lpCallback : PBECKYCALLBACK) : UINT; stdcall;
73+ RegisterUICallback : function(nID : UINT; lpCallback : PBECKYUICALLBACK) : UINT; stdcall;
74+ GetDataFolder : function : PChar; stdcall;
75+ GetTempFolder : function : PChar; stdcall;
76+ GetTempFileName : function(lpType : PChar) : PChar; stdcall;
77+ GetCurrentMailBox : function : PChar; stdcall;
78+ SetCurrentMailBox : procedure(lpMailBox : PChar); stdcall;
79+ GetCurrentFolder : function : PChar; stdcall;
80+ SetCurrentFolder : procedure(lpFolderID : PChar); stdcall;
81+ GetFolderDisplayName : function(lpFolderID : PChar) : PChar; stdcall;
82+ SetMessageText : procedure(hTargetWnd : HWND; lpszMsg : PChar); stdcall;
83+ GetCurrentMail : function : PChar; stdcall;
84+ SetCurrentMail : procedure(lpMailID : PChar); stdcall;
85+ GetNextMail : function(nStart : Integer; lpszMailID : PChar; nBuf : Integer; bSelected : BOOL) : Integer; stdcall;
86+ SetSel : procedure(lpMailID : PChar; bSel : BOOL); stdcall;
87+ AppendMessage : function(lpFolderID : PChar; lpszData : PChar) : BOOL; stdcall;
88+ MoveSelectedMessages : function(lpFolderID : PChar; bCopy : BOOL) : BOOL; stdcall;
89+ GetStatus : function(lpMailID : PChar) : DWORD; stdcall;
90+ SetStatus : function(lpMailID : PChar; dwSet : DWORD; dwReset : DWORD) : DWORD; stdcall;
91+ ComposeMail : function(lpURL : PChar) : HWND; stdcall;
92+ GetCharSet : function(lpMailID : PChar; lpszCharSet : PChar; nBuf : Integer) : Integer; stdcall;
93+ GetSource : function(lpMailID : PChar) : PChar; stdcall;
94+ SetSource : procedure(lpMailID : PChar; lpSource : PChar); stdcall;
95+ GetHeader : function(lpMailID : PChar) : PChar; stdcall;
96+ GetText : function(lpszMimeType : PChar; nBuf : Integer) : PChar; stdcall;
97+ SetText : procedure(nMode : Integer; lpText : PChar); stdcall;
98+ GetSpecifiedHeader : procedure(lpHeader : PChar; lpszData : PChar; nBuf : Integer); stdcall;
99+ SetSpecifiedHeader : procedure(lpHeader : PChar; lpszData : PChar); stdcall;
100+ CompGetCharSet : function(hTargetWnd : HWND; lpszCharSet : PChar; nBuf : Integer) : Integer; stdcall;
101+ CompGetSource : function(hTargetWnd : HWND) : PChar; stdcall;
102+ CompSetSource : procedure(hTargetWnd : HWND; lpSource : PChar); stdcall;
103+ CompGetHeader : function(hTargetWnd : HWND) : PChar; stdcall;
104+ CompGetSpecifiedHeader : procedure(hTargetWnd : HWND; lpHeader : PChar; lpszData : PChar; nBuf : Integer); stdcall;
105+ CompSetSpecifiedHeader : procedure(hTargetWnd : HWND; lpHeader : PChar; lpszData : PChar); stdcall;
106+ CompGetText : function(hTargetWnd : HWND; lpszMimeType : PChar; nBuf : Integer) : PChar; stdcall;
107+ CompSetText : procedure(hTargetWnd : HWND; nMode : Integer; lpText : PChar); stdcall;
108+ CompAttachFile : procedure(hTargetWnd : HWND; lpAttachFile : PChar; lpMimeType : PChar); stdcall;
109+ Alloc : function(dwSize : DWORD) : Pointer; stdcall;
110+ ReAlloc : function(lpVoid : Pointer; dwSize : DWORD) : Pointer; stdcall;
111+ Free : procedure(lpVoid : Pointer); stdcall;
112+ ISO_2022_JP : function(lpSrc : PChar; bEncode : boolean) : PChar; stdcall;
113+ ISO_2022_KR : function(lpSrc : PChar; bEncode : boolean) : PChar; stdcall;
114+ HZ_GB2312 : function(lpSrc : PChar; bEncode : boolean) : PChar; stdcall;
115+ ISO_8859_2 : function(lpSrc : PChar; bEncode : boolean) : PChar; stdcall;
116+ EUC_JP : function(lpSrc : PChar; bEncode : boolean) : PChar; stdcall;
117+ UTF_7 : function(lpSrc : PChar; bEncode : boolean) : PChar; stdcall;
118+ UTF_8 : function(lpSrc : PChar; bEncode : boolean) : PChar; stdcall;
119+ B64Convert : function(lpszOutFile : PChar; lpszInFile : PChar; bEncode : boolean) : boolean; stdcall;
120+ QPConvert : function(lpszOutFile : PChar; lpszInFile : PChar; bEncode : boolean) : boolean; stdcall;
121+ MIMEHeader : function(lpszIn : PChar; lpszCharSet : PChar; nBuf : Integer; bEncode : boolean) : PChar; stdcall;
122+ SerializeRcpts : function(lpAddresses : PChar) : PChar; stdcall;
123+ Connect : function(bConnect : boolean) : boolean; stdcall;
124+ constructor Create;
125+ destructor Destroy; override;
126+ function InitAPI : boolean;
127+ protected
128+ m_hInstBecky : THandle;
129+ end;
130+
131+implementation
132+
133+constructor TBeckyAPI.Create;
134+begin
135+ m_hInstBecky := 0;
136+end;
137+
138+destructor TBeckyAPI.Destroy;
139+begin
140+ if m_hInstBecky <> 0 then
141+ begin
142+ //FreeLibrary(m_hInstBecky);
143+ end;
144+ inherited Destroy;
145+end;
146+
147+function TBeckyAPI.InitAPI : Boolean;
148+var
149+ bRet : boolean;
150+ lpVer : PChar;
151+begin
152+ if m_hInstBecky <> 0 then
153+ begin
154+ Result := TRUE;
155+ exit;
156+ end;
157+
158+ bRet := FALSE;
159+ repeat
160+ m_hInstBecky := GetModuleHandle(nil);
161+ if m_hInstBecky < HINSTANCE_ERROR then
162+ begin
163+ m_hInstBecky := 0;
164+ Result := FALSE;
165+ exit;
166+ end;
167+ @GetVersion := GetProcAddress(m_hInstBecky, 'BKA_GetVersion');
168+ if @GetVersion = nil then break;
169+ @Command := GetProcAddress(m_hInstBecky, 'BKA_Command');
170+ if @Command = nil then break;
171+ @GetWindowHandles := GetProcAddress(m_hInstBecky, 'BKA_GetWindowHandles');
172+ if @GetWindowHandles = nil then break;
173+ @RegisterCommand := GetProcAddress(m_hInstBecky, 'BKA_RegisterCommand');
174+ if @RegisterCommand = nil then break;
175+ @RegisterUICallback := GetProcAddress(m_hInstBecky, 'BKA_RegisterUICallback');
176+ if @RegisterUICallback = nil then break;
177+ @GetDataFolder := GetProcAddress(m_hInstBecky, 'BKA_GetDataFolder');
178+ if @GetDataFolder = nil then break;
179+ @GetTempFolder := GetProcAddress(m_hInstBecky, 'BKA_GetTempFolder');
180+ if @GetTempFolder = nil then break;
181+ @GetTempFileName := GetProcAddress(m_hInstBecky, 'BKA_GetTempFileName');
182+ if @GetTempFileName = nil then break;
183+ @GetCurrentMailBox := GetProcAddress(m_hInstBecky, 'BKA_GetCurrentMailBox');
184+ if @GetCurrentMailBox = nil then break;
185+ @SetCurrentMailBox := GetProcAddress(m_hInstBecky, 'BKA_SetCurrentMailBox');
186+ if @SetCurrentMailBox = nil then break;
187+ @GetCurrentFolder := GetProcAddress(m_hInstBecky, 'BKA_GetCurrentFolder');
188+ if @GetCurrentFolder = nil then break;
189+ @SetCurrentFolder := GetProcAddress(m_hInstBecky, 'BKA_SetCurrentFolder');
190+ if @SetCurrentFolder = nil then break;
191+ @GetFolderDisplayName := GetProcAddress(m_hInstBecky, 'BKA_GetFolderDisplayName');
192+ if @GetFolderDisplayName = nil then break;
193+ @SetMessageText := GetProcAddress(m_hInstBecky, 'BKA_SetMessageText');
194+ if @SetMessageText = nil then break;
195+ @GetCurrentMail := GetProcAddress(m_hInstBecky, 'BKA_GetCurrentMail');
196+ if @GetCurrentMail = nil then break;
197+ @SetCurrentMail := GetProcAddress(m_hInstBecky, 'BKA_SetCurrentMail');
198+ if @SetCurrentMail = nil then break;
199+ @GetNextMail := GetProcAddress(m_hInstBecky, 'BKA_GetNextMail');
200+ if @GetNextMail = nil then break;
201+ @SetSel := GetProcAddress(m_hInstBecky, 'BKA_SetSel');
202+ if @SetSel = nil then break;
203+ @AppendMessage := GetProcAddress(m_hInstBecky, 'BKA_AppendMessage');
204+ if @AppendMessage = nil then break;
205+ @MoveSelectedMessages := GetProcAddress(m_hInstBecky, 'BKA_MoveSelectedMessages');
206+ if @MoveSelectedMessages = nil then break;
207+ @GetStatus := GetProcAddress(m_hInstBecky, 'BKA_GetStatus');
208+ if @GetStatus = nil then break;
209+ @ComposeMail := GetProcAddress(m_hInstBecky, 'BKA_ComposeMail');
210+ if @ComposeMail = nil then break;
211+ @GetCharSet := GetProcAddress(m_hInstBecky, 'BKA_GetCharSet');
212+ if @GetCharSet = nil then break;
213+ @GetSource := GetProcAddress(m_hInstBecky, 'BKA_GetSource');
214+ if @GetSource = nil then break;
215+ @SetSource := GetProcAddress(m_hInstBecky, 'BKA_SetSource');
216+ if @SetSource = nil then break;
217+ @GetHeader := GetProcAddress(m_hInstBecky, 'BKA_GetHeader');
218+ if @GetHeader = nil then break;
219+ @GetText := GetProcAddress(m_hInstBecky, 'BKA_GetText');
220+ if @GetText = nil then break;
221+ @SetText := GetProcAddress(m_hInstBecky, 'BKA_SetText');
222+ if @SetText = nil then break;
223+ @GetSpecifiedHeader := GetProcAddress(m_hInstBecky, 'BKA_GetSpecifiedHeader');
224+ if @GetSpecifiedHeader = nil then break;
225+ @SetSpecifiedHeader := GetProcAddress(m_hInstBecky, 'BKA_SetSpecifiedHeader');
226+ if @SetSpecifiedHeader = nil then break;
227+ @CompGetCharSet := GetProcAddress(m_hInstBecky, 'BKA_CompGetCharSet');
228+ if @CompGetCharSet = nil then break;
229+ @CompGetSource := GetProcAddress(m_hInstBecky, 'BKA_CompGetSource');
230+ if @CompGetSource = nil then break;
231+ @CompSetSource := GetProcAddress(m_hInstBecky, 'BKA_CompSetSource');
232+ if @CompSetSource = nil then break;
233+ @CompGetHeader := GetProcAddress(m_hInstBecky, 'BKA_CompGetHeader');
234+ if @CompGetHeader = nil then break;
235+ @CompGetSpecifiedHeader := GetProcAddress(m_hInstBecky, 'BKA_CompGetSpecifiedHeader');
236+ if @CompGetSpecifiedHeader = nil then break;
237+ @CompSetSpecifiedHeader := GetProcAddress(m_hInstBecky, 'BKA_CompSetSpecifiedHeader');
238+ if @CompSetSpecifiedHeader = nil then break;
239+ @CompGetText := GetProcAddress(m_hInstBecky, 'BKA_CompGetText');
240+ if @CompGetText = nil then break;
241+ @CompSetText := GetProcAddress(m_hInstBecky, 'BKA_CompSetText');
242+ if @CompSetText = nil then break;
243+ @CompAttachFile := GetProcAddress(m_hInstBecky, 'BKA_CompAttachFile');
244+ if @CompAttachFile = nil then break;
245+ @Alloc := GetProcAddress(m_hInstBecky, 'BKA_Alloc');
246+ if @Alloc = nil then break;
247+ @ReAlloc := GetProcAddress(m_hInstBecky, 'BKA_ReAlloc');
248+ if @ReAlloc = nil then break;
249+ @Free := GetProcAddress(m_hInstBecky, 'BKA_Free');
250+ if @Free = nil then break;
251+ @ISO_2022_JP := GetProcAddress(m_hInstBecky, 'BKA_ISO_2022_JP');
252+ if @ISO_2022_JP = nil then break;
253+ @ISO_2022_KR := GetProcAddress(m_hInstBecky, 'BKA_ISO_2022_KR');
254+ if @ISO_2022_KR = nil then break;
255+ @HZ_GB2312 := GetProcAddress(m_hInstBecky, 'BKA_HZ_GB2312');
256+ if @HZ_GB2312 = nil then break;
257+ @ISO_8859_2 := GetProcAddress(m_hInstBecky, 'BKA_ISO_8859_2');
258+ if @ISO_8859_2 = nil then break;
259+ @EUC_JP := GetProcAddress(m_hInstBecky, 'BKA_EUC_JP');
260+ if @EUC_JP = nil then break;
261+ @UTF_7 := GetProcAddress(m_hInstBecky, 'BKA_UTF_7');
262+ if @UTF_7 = nil then break;
263+ @UTF_8 := GetProcAddress(m_hInstBecky, 'BKA_UTF_8');
264+ if @UTF_8 = nil then break;
265+ @B64Convert := GetProcAddress(m_hInstBecky, 'BKA_B64Convert');
266+ if @B64Convert = nil then break;
267+ @QPConvert := GetProcAddress(m_hInstBecky, 'BKA_QPConvert');
268+ if @QPConvert = nil then break;
269+ @MIMEHeader := GetProcAddress(m_hInstBecky, 'BKA_MIMEHeader');
270+ if @MIMEHeader = nil then break;
271+ @SerializeRcpts := GetProcAddress(m_hInstBecky, 'BKA_SerializeRcpts');
272+ if @SerializeRcpts = nil then break;
273+ @Connect := GetProcAddress(m_hInstBecky, 'BKA_Connect');
274+ if @Connect = nil then break;
275+
276+ // v2.00.06 or higher
277+ @SetStatus := GetProcAddress(m_hInstBecky, 'BKA_SetStatus');
278+//LPCTSTR lpVer = GetVersion();
279+ lpVer := GetVersion;
280+//if (lstrlen(lpVer) > 7 || lstrcmp(lpVer, "2.00.06") >= 0) {
281+ if (StrLen(lpVer) > 7) or (CompareText(lpVer, '2.00.06') >= 0) then
282+ begin
283+ if @SetStatus = nil then break;
284+ end
285+ else
286+ begin
287+ // Still works if the plugin doesn't use "SetStatus" API.
288+ end;
289+
290+ bRet := TRUE;
291+ until true;
292+ if not bRet then
293+ begin
294+ m_hInstBecky := 0;
295+ end;
296+ Result := bRet;
297+end;
298+
299+end.
\ No newline at end of file
--- trunk/BkOpenURL.dproj (nonexistent)
+++ trunk/BkOpenURL.dproj (revision 1)
@@ -0,0 +1,518 @@
1+<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
2+ <PropertyGroup>
3+ <ProjectGuid>{22830ed3-0e88-4018-ba92-1ce388cc5188}</ProjectGuid>
4+ <MainSource>BkOpenURL.dpr</MainSource>
5+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
6+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
7+ <DCC_DCCCompiler>DCC32</DCC_DCCCompiler>
8+ <DCC_DependencyCheckOutputName>..\..\..\..\MailData\PlugIns\BkOpenURL.dll</DCC_DependencyCheckOutputName>
9+ </PropertyGroup>
10+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
11+ <Version>7.0</Version>
12+ <DCC_DebugInformation>False</DCC_DebugInformation>
13+ <DCC_LocalDebugSymbols>False</DCC_LocalDebugSymbols>
14+ <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo>
15+ <DCC_Define>RELEASE</DCC_Define>
16+ </PropertyGroup>
17+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
18+ <Version>7.0</Version>
19+ <DCC_Define>DEBUG</DCC_Define>
20+ <DCC_ExeOutput>D:\Users\Takayanagi\Documents\MailData\PlugIns</DCC_ExeOutput>
21+ </PropertyGroup>
22+ <ProjectExtensions>
23+ <Borland.Personality>Delphi.Personality</Borland.Personality>
24+ <Borland.ProjectType>VCLApplication</Borland.ProjectType>
25+ <BorlandProject>
26+<BorlandProject><Delphi.Personality><Parameters><Parameters Name="UseLauncher">False</Parameters><Parameters Name="LoadAllSymbols">True</Parameters><Parameters Name="LoadUnspecifiedSymbols">False</Parameters><Parameters Name="HostApplication">C:\Program Files\RimArts\B2\B2.exe</Parameters></Parameters><VersionInfo><VersionInfo Name="IncludeVerInfo">False</VersionInfo><VersionInfo Name="AutoIncBuild">False</VersionInfo><VersionInfo Name="MajorVer">1</VersionInfo><VersionInfo Name="MinorVer">0</VersionInfo><VersionInfo Name="Release">0</VersionInfo><VersionInfo Name="Build">0</VersionInfo><VersionInfo Name="Debug">False</VersionInfo><VersionInfo Name="PreRelease">False</VersionInfo><VersionInfo Name="Special">False</VersionInfo><VersionInfo Name="Private">False</VersionInfo><VersionInfo Name="DLL">False</VersionInfo><VersionInfo Name="Locale">1041</VersionInfo><VersionInfo Name="CodePage">932</VersionInfo></VersionInfo><VersionInfoKeys><VersionInfoKeys Name="CompanyName"></VersionInfoKeys><VersionInfoKeys Name="FileDescription"></VersionInfoKeys><VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys><VersionInfoKeys Name="InternalName"></VersionInfoKeys><VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys><VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys><VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys><VersionInfoKeys Name="ProductName"></VersionInfoKeys><VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys><VersionInfoKeys Name="Comments"></VersionInfoKeys></VersionInfoKeys><Source><Source Name="MainSource">BkOpenURL.dpr</Source></Source></Delphi.Personality> <ModelSupport>False</ModelSupport>
27+</BorlandProject></BorlandProject>
28+ </ProjectExtensions>
29+ <Import Project="$(MSBuildBinPath)\Borland.Delphi.Targets" />
30+ <ItemGroup>
31+ <DelphiCompile Include="BkOpenURL.dpr">
32+ <MainSource>MainSource</MainSource>
33+ </DelphiCompile>
34+ </ItemGroup>
35+</Project>
36+<!-- EurekaLog First Line
37+[Exception Log]
38+EurekaLog Version=6025
39+Activate=0
40+Activate Handle=1
41+Save Log File=1
42+Foreground Tab=0
43+Freeze Activate=0
44+Freeze Timeout=0
45+SMTP From=eurekalog@email.com
46+SMTP Host=
47+SMTP Port=25
48+SMTP UserID=
49+SMTP Password=
50+Append to Log=0
51+TerminateBtn Operation=2
52+Errors Number=32
53+Errors Terminate=3
54+Email Address=
55+Email Object=
56+Email Send Options=0
57+Output Path=
58+Encrypt Password=
59+AutoCloseDialogSecs=0
60+WebSendMode=0
61+SupportULR=
62+HTMLLayout Count=15
63+HTMLLine0="%3Chtml%3E"
64+HTMLLine1=" %3Chead%3E"
65+HTMLLine2=" %3C/head%3E"
66+HTMLLine3=" %3Cbody TopMargin=10 LeftMargin=10%3E"
67+HTMLLine4=" %3Ctable width="100%%" border="0"%3E"
68+HTMLLine5=" %3Ctr%3E"
69+HTMLLine6=" %3Ctd nowrap%3E"
70+HTMLLine7=" %3Cfont face="Lucida Console, Courier" size="2"%3E"
71+HTMLLine8=" %3C%%HTML_TAG%%%3E"
72+HTMLLine9=" %3C/font%3E"
73+HTMLLine10=" %3C/td%3E"
74+HTMLLine11=" %3C/tr%3E"
75+HTMLLine12=" %3C/table%3E"
76+HTMLLine13=" %3C/body%3E"
77+HTMLLine14="%3C/html%3E"
78+AutoCrashOperation=2
79+AutoCrashNumber=10
80+AutoCrashMinutes=1
81+WebURL=
82+WebUserID=
83+WebPassword=
84+WebPort=0
85+AttachedFiles=
86+ProxyURL=
87+ProxyUser=
88+ProxyPassword=
89+ProxyPort=8080
90+TrakerUser=
91+TrakerPassword=
92+TrakerAssignTo=
93+TrakerProject=
94+TrakerCategory=
95+TrakerTrialID=
96+ZipPassword=
97+PreBuildEvent=
98+PostSuccessfulBuildEvent=
99+PostFailureBuildEvent=
100+ExceptionDialogType=2
101+Count=0
102+EMail Message Line Count=0
103+loNoDuplicateErrors=0
104+loAppendReproduceText=0
105+loDeleteLogAtVersionChange=0
106+loAddComputerNameInLogFileName=0
107+loSaveModulesAndProcessesSections=1
108+loSaveAssemblerAndCPUSections=1
109+soAppStartDate=1
110+soAppName=1
111+soAppVersionNumber=1
112+soAppParameters=1
113+soAppCompilationDate=1
114+soAppUpTime=1
115+soExcDate=1
116+soExcAddress=1
117+soExcModuleName=1
118+soExcModuleVersion=1
119+soExcType=1
120+soExcMessage=1
121+soExcID=1
122+soExcCount=1
123+soExcStatus=1
124+soExcNote=1
125+soUserID=1
126+soUserName=1
127+soUserEmail=1
128+soUserPrivileges=1
129+soUserCompany=1
130+soActCtlsFormClass=1
131+soActCtlsFormText=1
132+soActCtlsControlClass=1
133+soActCtlsControlText=1
134+soCmpName=1
135+soCmpTotalMemory=1
136+soCmpFreeMemory=1
137+soCmpTotalDisk=1
138+soCmpFreeDisk=1
139+soCmpSysUpTime=1
140+soCmpProcessor=1
141+soCmpDisplayMode=1
142+soCmpDisplayDPI=1
143+soCmpVideoCard=1
144+soCmpPrinter=1
145+soOSType=1
146+soOSBuildN=1
147+soOSUpdate=1
148+soOSLanguage=1
149+soOSCharset=1
150+soNetIP=1
151+soNetSubmask=1
152+soNetGateway=1
153+soNetDNS1=1
154+soNetDNS2=1
155+soNetDHCP=1
156+soCustomData=1
157+sndShowSendDialog=1
158+sndShowSuccessFailureMsg=0
159+sndSendEntireLog=0
160+sndSendXMLLogCopy=0
161+sndSendScreenshot=1
162+sndUseOnlyActiveWindow=0
163+sndSendLastHTMLPage=1
164+sndSendInSeparatedThread=0
165+sndAddDateInFileName=0
166+sndAddComputerNameInFileName=0
167+edoSendErrorReportChecked=1
168+edoAttachScreenshotChecked=1
169+edoShowCopyToClipOption=1
170+edoShowDetailsButton=1
171+edoShowInDetailedMode=0
172+edoShowInTopMostMode=0
173+edoUseEurekaLogLookAndFeel=0
174+edoShowSendErrorReportOption=1
175+edoShowAttachScreenshotOption=1
176+edoShowCustomButton=0
177+csoShowDLLs=1
178+csoShowBPLs=1
179+csoShowBorlandThreads=1
180+csoShowWindowsThreads=1
181+csoDoNotStoreProcNames=0
182+boPauseBorlandThreads=0
183+boDoNotPauseMainThread=0
184+boPauseWindowsThreads=0
185+boUseMainModuleOptions=1
186+boCopyLogInCaseOfError=1
187+boSaveCompressedCopyInCaseOfError=0
188+boHandleSafeCallExceptions=1
189+boCallRTLExceptionEvent=0
190+boCatchHandledExceptions=0
191+loCatchLeaks=0
192+loGroupsSonLeaks=1
193+loHideBorlandLeaks=1
194+loFreeAllLeaks=1
195+loCatchLeaksExceptions=1
196+cfoReduceFileSize=1
197+cfoCheckFileCorruption=0
198+Count mtInformationMsgCaption=1
199+mtInformationMsgCaption0="Information."
200+Count mtQuestionMsgCaption=1
201+mtQuestionMsgCaption0="Question."
202+Count mtErrorMsgCaption=1
203+mtErrorMsgCaption0="Error."
204+Count mtDialog_Caption=1
205+mtDialog_Caption0="Error occurred"
206+Count mtDialog_ErrorMsgCaption=2
207+mtDialog_ErrorMsgCaption0="An error has occurred during program execution."
208+mtDialog_ErrorMsgCaption1="Please read the following information for further details."
209+Count mtDialog_GeneralCaption=1
210+mtDialog_GeneralCaption0="General"
211+Count mtDialog_GeneralHeader=1
212+mtDialog_GeneralHeader0="General Information"
213+Count mtDialog_CallStackCaption=1
214+mtDialog_CallStackCaption0="Call Stack"
215+Count mtDialog_CallStackHeader=1
216+mtDialog_CallStackHeader0="Call Stack Information"
217+Count mtDialog_ModulesCaption=1
218+mtDialog_ModulesCaption0="Modules"
219+Count mtDialog_ModulesHeader=1
220+mtDialog_ModulesHeader0="Modules Information"
221+Count mtDialog_ProcessesCaption=1
222+mtDialog_ProcessesCaption0="Processes"
223+Count mtDialog_ProcessesHeader=1
224+mtDialog_ProcessesHeader0="Processes Information"
225+Count mtDialog_AsmCaption=1
226+mtDialog_AsmCaption0="Assembler"
227+Count mtDialog_AsmHeader=1
228+mtDialog_AsmHeader0="Assembler Information"
229+Count mtDialog_CPUCaption=1
230+mtDialog_CPUCaption0="CPU"
231+Count mtDialog_CPUHeader=1
232+mtDialog_CPUHeader0="CPU Information"
233+Count mtDialog_OKButtonCaption=1
234+mtDialog_OKButtonCaption0="%26OK"
235+Count mtDialog_TerminateButtonCaption=1
236+mtDialog_TerminateButtonCaption0="%26Terminate"
237+Count mtDialog_RestartButtonCaption=1
238+mtDialog_RestartButtonCaption0="%26Restart"
239+Count mtDialog_DetailsButtonCaption=1
240+mtDialog_DetailsButtonCaption0="%26Details"
241+Count mtDialog_CustomButtonCaption=1
242+mtDialog_CustomButtonCaption0="%26Help"
243+Count mtDialog_SendMessage=1
244+mtDialog_SendMessage0="%26Send this error via Internet"
245+Count mtDialog_ScreenshotMessage=1
246+mtDialog_ScreenshotMessage0="%26Attach a Screenshot image"
247+Count mtDialog_CopyMessage=1
248+mtDialog_CopyMessage0="%26Copy to Clipboard"
249+Count mtDialog_SupportMessage=1
250+mtDialog_SupportMessage0="Go to the Support Page"
251+Count mtMSDialog_ErrorMsgCaption=1
252+mtMSDialog_ErrorMsgCaption0="The application has encountered a problem. We are sorry for the inconvenience."
253+Count mtMSDialog_RestartCaption=1
254+mtMSDialog_RestartCaption0="Restart application."
255+Count mtMSDialog_TerminateCaption=1
256+mtMSDialog_TerminateCaption0="Terminate application."
257+Count mtMSDialog_PleaseCaption=1
258+mtMSDialog_PleaseCaption0="Please tell us about this problem."
259+Count mtMSDialog_DescriptionCaption=1
260+mtMSDialog_DescriptionCaption0="We have created an error report that you can send to us. We will treat this report as confidential and anonymous."
261+Count mtMSDialog_SeeDetailsCaption=1
262+mtMSDialog_SeeDetailsCaption0="To see what data the error report contains,"
263+Count mtMSDialog_SeeClickCaption=1
264+mtMSDialog_SeeClickCaption0="click here."
265+Count mtMSDialog_HowToReproduceCaption=1
266+mtMSDialog_HowToReproduceCaption0="What were you doing when the problem happened (optional)?"
267+Count mtMSDialog_EmailCaption=1
268+mtMSDialog_EmailCaption0="Email address (optional):"
269+Count mtMSDialog_SendButtonCaption=1
270+mtMSDialog_SendButtonCaption0="%26Send Error Report"
271+Count mtMSDialog_NoSendButtonCaption=1
272+mtMSDialog_NoSendButtonCaption0="%26Don't Send"
273+Count mtLog_AppHeader=1
274+mtLog_AppHeader0="Application"
275+Count mtLog_AppStartDate=1
276+mtLog_AppStartDate0="Start Date"
277+Count mtLog_AppName=1
278+mtLog_AppName0="Name/Description"
279+Count mtLog_AppVersionNumber=1
280+mtLog_AppVersionNumber0="Version Number"
281+Count mtLog_AppParameters=1
282+mtLog_AppParameters0="Parameters"
283+Count mtLog_AppCompilationDate=1
284+mtLog_AppCompilationDate0="Compilation Date"
285+Count mtLog_AppUpTime=1
286+mtLog_AppUpTime0="Up Time"
287+Count mtLog_ExcHeader=1
288+mtLog_ExcHeader0="Exception"
289+Count mtLog_ExcDate=1
290+mtLog_ExcDate0="Date"
291+Count mtLog_ExcAddress=1
292+mtLog_ExcAddress0="Address"
293+Count mtLog_ExcModuleName=1
294+mtLog_ExcModuleName0="Module Name"
295+Count mtLog_ExcModuleVersion=1
296+mtLog_ExcModuleVersion0="Module Version"
297+Count mtLog_ExcType=1
298+mtLog_ExcType0="Type"
299+Count mtLog_ExcMessage=1
300+mtLog_ExcMessage0="Message"
301+Count mtLog_ExcID=1
302+mtLog_ExcID0="ID"
303+Count mtLog_ExcCount=1
304+mtLog_ExcCount0="Count"
305+Count mtLog_ExcStatus=1
306+mtLog_ExcStatus0="Status"
307+Count mtLog_ExcNote=1
308+mtLog_ExcNote0="Note"
309+Count mtLog_UserHeader=1
310+mtLog_UserHeader0="User"
311+Count mtLog_UserID=1
312+mtLog_UserID0="ID"
313+Count mtLog_UserName=1
314+mtLog_UserName0="Name"
315+Count mtLog_UserEmail=1
316+mtLog_UserEmail0="Email"
317+Count mtLog_UserCompany=1
318+mtLog_UserCompany0="Company"
319+Count mtLog_UserPrivileges=1
320+mtLog_UserPrivileges0="Privileges"
321+Count mtLog_ActCtrlsHeader=1
322+mtLog_ActCtrlsHeader0="Active Controls"
323+Count mtLog_ActCtrlsFormClass=1
324+mtLog_ActCtrlsFormClass0="Form Class"
325+Count mtLog_ActCtrlsFormText=1
326+mtLog_ActCtrlsFormText0="Form Text"
327+Count mtLog_ActCtrlsControlClass=1
328+mtLog_ActCtrlsControlClass0="Control Class"
329+Count mtLog_ActCtrlsControlText=1
330+mtLog_ActCtrlsControlText0="Control Text"
331+Count mtLog_CmpHeader=1
332+mtLog_CmpHeader0="Computer"
333+Count mtLog_CmpName=1
334+mtLog_CmpName0="Name"
335+Count mtLog_CmpTotalMemory=1
336+mtLog_CmpTotalMemory0="Total Memory"
337+Count mtLog_CmpFreeMemory=1
338+mtLog_CmpFreeMemory0="Free Memory"
339+Count mtLog_CmpTotalDisk=1
340+mtLog_CmpTotalDisk0="Total Disk"
341+Count mtLog_CmpFreeDisk=1
342+mtLog_CmpFreeDisk0="Free Disk"
343+Count mtLog_CmpSystemUpTime=1
344+mtLog_CmpSystemUpTime0="System Up Time"
345+Count mtLog_CmpProcessor=1
346+mtLog_CmpProcessor0="Processor"
347+Count mtLog_CmpDisplayMode=1
348+mtLog_CmpDisplayMode0="Display Mode"
349+Count mtLog_CmpDisplayDPI=1
350+mtLog_CmpDisplayDPI0="Display DPI"
351+Count mtLog_CmpVideoCard=1
352+mtLog_CmpVideoCard0="Video Card"
353+Count mtLog_CmpPrinter=1
354+mtLog_CmpPrinter0="Printer"
355+Count mtLog_OSHeader=1
356+mtLog_OSHeader0="Operating System"
357+Count mtLog_OSType=1
358+mtLog_OSType0="Type"
359+Count mtLog_OSBuildN=1
360+mtLog_OSBuildN0="Build #"
361+Count mtLog_OSUpdate=1
362+mtLog_OSUpdate0="Update"
363+Count mtLog_OSLanguage=1
364+mtLog_OSLanguage0="Language"
365+Count mtLog_OSCharset=1
366+mtLog_OSCharset0="Charset"
367+Count mtLog_NetHeader=1
368+mtLog_NetHeader0="Network"
369+Count mtLog_NetIP=1
370+mtLog_NetIP0="IP Address"
371+Count mtLog_NetSubmask=1
372+mtLog_NetSubmask0="Submask"
373+Count mtLog_NetGateway=1
374+mtLog_NetGateway0="Gateway"
375+Count mtLog_NetDNS1=1
376+mtLog_NetDNS10="DNS 1"
377+Count mtLog_NetDNS2=1
378+mtLog_NetDNS20="DNS 2"
379+Count mtLog_NetDHCP=1
380+mtLog_NetDHCP0="DHCP"
381+Count mtLog_CustInfoHeader=1
382+mtLog_CustInfoHeader0="Custom Information"
383+Count mtCallStack_Address=1
384+mtCallStack_Address0="Address"
385+Count mtCallStack_Name=1
386+mtCallStack_Name0="Module"
387+Count mtCallStack_Unit=1
388+mtCallStack_Unit0="Unit"
389+Count mtCallStack_Class=1
390+mtCallStack_Class0="Class"
391+Count mtCallStack_Procedure=1
392+mtCallStack_Procedure0="Procedure/Method"
393+Count mtCallStack_Line=1
394+mtCallStack_Line0="Line"
395+Count mtCallStack_MainThread=1
396+mtCallStack_MainThread0="Main"
397+Count mtCallStack_ExceptionThread=1
398+mtCallStack_ExceptionThread0="Exception Thread"
399+Count mtCallStack_RunningThread=1
400+mtCallStack_RunningThread0="Running Thread"
401+Count mtCallStack_CallingThread=1
402+mtCallStack_CallingThread0="Calling Thread"
403+Count mtCallStack_ThreadID=1
404+mtCallStack_ThreadID0="ID"
405+Count mtCallStack_ThreadPriority=1
406+mtCallStack_ThreadPriority0="Priority"
407+Count mtCallStack_ThreadClass=1
408+mtCallStack_ThreadClass0="Class"
409+Count mtCallStack_LeakCaption=1
410+mtCallStack_LeakCaption0="Memory Leak"
411+Count mtCallStack_LeakData=1
412+mtCallStack_LeakData0="Data"
413+Count mtCallStack_LeakType=1
414+mtCallStack_LeakType0="Type"
415+Count mtCallStack_LeakSize=1
416+mtCallStack_LeakSize0="Total size"
417+Count mtCallStack_LeakCount=1
418+mtCallStack_LeakCount0="Count"
419+Count mtSendDialog_Caption=1
420+mtSendDialog_Caption0="Send."
421+Count mtSendDialog_Message=1
422+mtSendDialog_Message0="Message"
423+Count mtSendDialog_Resolving=1
424+mtSendDialog_Resolving0="Resolving DNS..."
425+Count mtSendDialog_Login=1
426+mtSendDialog_Login0="Login..."
427+Count mtSendDialog_Connecting=1
428+mtSendDialog_Connecting0="Connecting with server..."
429+Count mtSendDialog_Connected=1
430+mtSendDialog_Connected0="Connected with server."
431+Count mtSendDialog_Sending=1
432+mtSendDialog_Sending0="Sending message..."
433+Count mtSendDialog_Sent=1
434+mtSendDialog_Sent0="Message sent."
435+Count mtSendDialog_SelectProject=1
436+mtSendDialog_SelectProject0="Select project..."
437+Count mtSendDialog_Searching=1
438+mtSendDialog_Searching0="Searching..."
439+Count mtSendDialog_Modifying=1
440+mtSendDialog_Modifying0="Modifying..."
441+Count mtSendDialog_Disconnecting=1
442+mtSendDialog_Disconnecting0="Disconnecting..."
443+Count mtSendDialog_Disconnected=1
444+mtSendDialog_Disconnected0="Disconnected."
445+Count mtReproduceDialog_Caption=1
446+mtReproduceDialog_Caption0="Request"
447+Count mtReproduceDialog_Request=1
448+mtReproduceDialog_Request0="Please describe the steps to reproduce the error:"
449+Count mtReproduceDialog_OKButtonCaption=1
450+mtReproduceDialog_OKButtonCaption0="%26OK"
451+Count mtModules_Handle=1
452+mtModules_Handle0="Handle"
453+Count mtModules_Name=1
454+mtModules_Name0="Name"
455+Count mtModules_Description=1
456+mtModules_Description0="Description"
457+Count mtModules_Version=1
458+mtModules_Version0="Version"
459+Count mtModules_Size=1
460+mtModules_Size0="Size"
461+Count mtModules_LastModified=1
462+mtModules_LastModified0="Modified"
463+Count mtModules_Path=1
464+mtModules_Path0="Path"
465+Count mtProcesses_ID=1
466+mtProcesses_ID0="ID"
467+Count mtProcesses_Name=1
468+mtProcesses_Name0="Name"
469+Count mtProcesses_Description=1
470+mtProcesses_Description0="Description"
471+Count mtProcesses_Version=1
472+mtProcesses_Version0="Version"
473+Count mtProcesses_Memory=1
474+mtProcesses_Memory0="Memory"
475+Count mtProcesses_Priority=1
476+mtProcesses_Priority0="Priority"
477+Count mtProcesses_Threads=1
478+mtProcesses_Threads0="Threads"
479+Count mtProcesses_Path=1
480+mtProcesses_Path0="Path"
481+Count mtCPU_Registers=1
482+mtCPU_Registers0="Registers"
483+Count mtCPU_Stack=1
484+mtCPU_Stack0="Stack"
485+Count mtCPU_MemoryDump=1
486+mtCPU_MemoryDump0="Memory Dump"
487+Count mtSend_SuccessMsg=1
488+mtSend_SuccessMsg0="The message was sent successfully."
489+Count mtSend_FailureMsg=1
490+mtSend_FailureMsg0="Sorry, sending the message didn't work."
491+Count mtSend_BugClosedMsg=2
492+mtSend_BugClosedMsg0="These BUG is just closed."
493+mtSend_BugClosedMsg1="Contact the program support to obtain an update."
494+Count mtSend_UnknownErrorMsg=1
495+mtSend_UnknownErrorMsg0="Unknown error."
496+Count mtSend_InvalidLoginMsg=1
497+mtSend_InvalidLoginMsg0="Invalid login request."
498+Count mtSend_InvalidSearchMsg=1
499+mtSend_InvalidSearchMsg0="Invalid search request."
500+Count mtSend_InvalidSelectionMsg=1
501+mtSend_InvalidSelectionMsg0="Invalid selection request."
502+Count mtSend_InvalidInsertMsg=1
503+mtSend_InvalidInsertMsg0="Invalid insert request."
504+Count mtSend_InvalidModifyMsg=1
505+mtSend_InvalidModifyMsg0="Invalid modify request."
506+Count mtFileCrackedMsg=2
507+mtFileCrackedMsg0="This file is cracked."
508+mtFileCrackedMsg1="The application will be closed."
509+Count mtException_LeakMultiFree=1
510+mtException_LeakMultiFree0="Multi Free memory leak."
511+Count mtException_LeakMemoryOverrun=1
512+mtException_LeakMemoryOverrun0="Memory Overrun leak."
513+Count mtException_AntiFreeze=1
514+mtException_AntiFreeze0="The application seems to be frozen."
515+Count mtInvalidEmailMsg=1
516+mtInvalidEmailMsg0="Invalid email."
517+TextsCollection=English
518+EurekaLog Last Line -->
旧リポジトリブラウザで表示