DLLインタフェース

 COM DLLライブラリは、DLLインポート関数を持つプログラム言語で開発されたツールで、インポートできる関数を、エキスポートします。

 このインターフェイスの利点の一つは、コマンドライン・インターフェイスのように関数が呼ばれるたびにではなく、DLLが一度だけ初期化されることです。
これにより、タスクが複数の関数呼び出しを実行する必要がある場合に、より高速な実行が可能になります。

 コマンドライン・インタフェースを持つツールは、すべて、DLLエクスポート関数を持っています。すべての関数は、同じ構文が使われます。

 C 言語の構文で:

void CALLBACK EntryPoint(HWND hwnd, HINSTANCE hinst, LPSTR lpszCmdLine, int nCmdShow);

 hwnd (ウィンドウ・ハンドルで、ツールが作成するすべてのウィンドウに、所有者ウィンドウに参照を付けるために使われます。)と、lpszCmdLine (ツール・コマンドライン引数、コマンドライン・インタフェース・ツール command line 引数と同じ) パラメータだけが、内部的に使用されます。

 この一般的な関数の EntryPoint 関数名を、ツールがエキスポートする関数名に置き換えて下さい。このヘルプのそれぞれのページで確認することができます。
Delphi 言語での Merge 関数の宣言例:

function Merge(hWnd:THandle;hInst:Cardinal;lpszCmdLine:PChar;nCmdShow:Integer):Cardinal;stdcall;external 'PDFShellTools.dll'

このインターフェイスは、このマージ関数の例に示すように、Windows Rundll32 ツールを使って呼び出すことができます。

Rundll32 "C:\Program Files\PDF-ShellTools\PDFShellTools.dll",Merge "C:\My docs\File1.PDF;C:\My Docs\File2.pdf"

このメソッドの使用は、コマンドライン・インターフェイスを使用するよりはパフォーマンス上の利点はありませんが、呼び出し元が Win32 コンソールウィンドウを非表示にしたい場合に便利です。

 

(c) 2006-2021 RTT, Makoto WATANABE