- お知らせ -
  • 当wikiのプログラムコードの表示を直してみました(ついでに長い行があると全体が下にぶっ飛ぶのも修正)。不具合があればBBSまでご連絡下さい。

Delphi/interfaceを使おう

はじめに Edit

intefaceを使おうで使うライブラリです。

DelWikiのものを参考にしています。

Delphiでinteface(インターフェイス)を利用するには、必要なライブラリと思います。

コード Edit

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
unit InterfaceUtilsUnit;
interface
type
  // 自前開放管理interface基底クラス(TInterfacedObjectの代替)
  // 参考:DelWiki - 資料/インターフェイス
  //  http://delwiki.info/?%BB%F1%CE%C1%2F%A5%A4%A5%F3%A5%BF%A1%BC%A5%D5%A5%A7%A5%A4%A5%B9
  TInterfacedBase = class(TObject, IUnknown)
    function QueryInterface(const IID: TGUID; out Obj): HRESULT; stdcall;
    function _AddRef: Integer; stdcall;
    function _Release: Integer; stdcall;
  end;

implementation

function TInterfacedBase._AddRef: Integer;
begin
  Result := -1;
end;

function TInterfacedBase._Release: Integer;
begin
  Result := -1;
end;

function TInterfacedBase.QueryInterface(const IID: TGUID; out Obj): HRESULT;
const
  E_NOINTERFACE = HResult($80004002);
begin
  if GetInterface(IID, Obj) then Result := 0 else Result := E_NOINTERFACE;
end;

end.



Front page   Edit Freeze Diff Backup Upload Copy Rename Reload   New Pages Search Recent changes   Help   RSS of recent changes
Last-modified: 2008-11-17 Mon 16:35:58 JST (4040d)