Develop and Download Open Source Software

Browse CVS Repository

Diff of /gikonavigoeson/gikonavi/ExternalBoardPlugInMain.pas

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.7 by yoffy, Thu Nov 27 13:04:17 2003 UTC revision 1.8 by yoffy, Thu Mar 18 03:32:17 2004 UTC
# Line 3  unit ExternalBoardPlugInMain; Line 3  unit ExternalBoardPlugInMain;
3  interface  interface
4    
5  uses  uses
6          Windows, Classes, SysUtils,          Windows, Classes, SysUtils, Menus,
7          IdHTTP, IdComponent, IdGlobal, IdException,          IdHTTP, IdComponent, IdGlobal, IdException,
8          AbonUnit;          AbonUnit;
9    
# Line 15  type Line 15  type
15          // 指定した URL をこのプラグインで受け付けるかどうか          // 指定した URL をこのプラグインで受け付けるかどうか
16          TAcceptType = (atNoAccept, atBBS, atBoard, atThread);          TAcceptType = (atNoAccept, atBBS, atBoard, atThread);
17    
18            // メニューハンドラ
19            TMenuHandler    = procedure(
20                    inHandle : HMENU                                        // メニューハンドル
21            ); stdcall;
22    
23            // *************************************************************************
24            // プラグインが(正しく)ロードされた
25            // *************************************************************************
26            TOnLoad = procedure (
27                    inInstance : DWORD                              // プラグインのインスタンス
28            ); stdcall;
29    
30          // *************************************************************************          // *************************************************************************
31          // プラグインのバージョン          // プラグインのバージョン
32          // *************************************************************************          // *************************************************************************
# Line 34  type Line 46  type
46          ): TAcceptType; stdcall;        // URL の種類          ): TAcceptType; stdcall;        // URL の種類
47    
48          // *************************************************************************          // *************************************************************************
49            // メニューハンドラ
50            // *************************************************************************
51            TOnPlugInMenu = procedure(
52                    inInstance : DWORD              // メニューハンドル
53            ); stdcall;
54    
55            // *************************************************************************
56          // スレ一覧の URL からスレッドの URL を導き出す          // スレ一覧の URL からスレッドの URL を導き出す
57          // *************************************************************************          // *************************************************************************
58          TOnListURL2ThreadURL = function(          TOnListURL2ThreadURL = function(
# Line 429  begin Line 448  begin
448    
449  end;  end;
450    
451    // *************************************************************************
452    // プラグインメニューに項目を追加
453    // *************************************************************************
454    function AddPlugInMenu(
455            inInstance      : DWORD;                // プラグインのインスタンス
456            inCaption       : PChar                         // メニューに表示する文字列
457    ) : HMENU; stdcall;                             // メニューハンドル、追加に失敗した場合は NULL
458    var
459            newItem         : TMenuItem;
460    begin
461    
462            try
463                    newItem                                 := TMenuItem.Create( nil );
464                    newItem.Caption := inCaption;
465                    newItem.Tag                     := inInstance;
466                    newItem.OnClick := GikoForm.OnPlugInMenuItem;
467                    GikoForm.PlugInMenu.Add( newItem );
468    
469                    Result := newItem.Handle;
470            except
471                    Result := 0;
472            end;
473    
474    end;
475    
476    // *************************************************************************
477    // プラグインメニューから項目を削除
478    // *************************************************************************
479    procedure RemovePlugInMenu(
480            inHandle        : HMENU                         // メニューハンドル
481    ); stdcall;
482    var
483            i                                       : Integer;
484    begin
485    
486            for i := GikoForm.PlugInMenu.Count - 1 downto 0 do begin
487                    if GikoForm.PlugInMenu.Items[ i ].Handle = inHandle then begin
488                            GikoForm.PlugInMenu.Delete( i );
489                            Break;
490                    end;
491            end;
492    
493    end;
494    
495  exports  exports
496          CreateResultString,          CreateResultString,
497          DisposeResultString,          DisposeResultString,
# Line 439  exports Line 502  exports
502          InternalPost,          InternalPost,
503          InternalAbon,          InternalAbon,
504          InternalAbonForOne,          InternalAbonForOne,
505          InternalDat2HTML;          InternalDat2HTML,
506            AddPlugInMenu,
507            RemovePlugInMenu;
508    
509  end.  end.

Legend:
Removed from v.1.7  
changed lines
  Added in v.1.8

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26