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 コンソールウィンドウを非表示にしたい場合に便利です。