以下に示すように、新しいメソッドを追加する必要があるタイプ ライブラリ プロジェクト "MyLib" があります。C# クライアント アプリケーションから呼び出された場合IntPtr
、引数として受け取る必要があります。
以下は、「MyLib」プロジェクト内のメソッドの IDL 定義です。
[id(9), helpstring("method PrintFile"), local]
HRESULT PrintFile([in] HANDLE pDevMode);
IDL ファイルの特定の引数にどの型を使用すればよいか教えてください。
以下は、私の C# クライアント プロジェクト コードです。
PrintDialog PrntDlg = new PrintDialog();
PrintDocument printDocument = new PrintDocument();
printDocument.DocumentName = "filename";
PrntDlg.Document = printDocument;
PrntDlg.AllowSelection = true;
PrntDlg.AllowSomePages = true;
if (PrntDlg.ShowDialog() == DialogResult.OK)
{
IntPtr PDevMode = PrntDlg.PrinterSettings.GetHdevmode();
MyLib.PrintFile(PDevMode);
}
IDL 定義内で使用するとHANDLE
、次の例外がスローされます。
タイプ 'System.__ComObject' の COM オブジェクトをインターフェイス タイプにキャストできません ...