タイプライブラリ(ハードウェアSDKの一部)からインポートしたCOMインターフェイスのメソッドの一部は、タイプIUnknownの値を返すか受け取ります。例として、SDKドキュメントは次のようにメソッドを指定します。
bool SetInput1Selection(InputSelection inputSelection)
InputSelection GetInput1Selection()
しかし、Delphiはこれらのメソッドを次のようにインポートしました。
function SetInput1Selection(const inputSelection: IUnknown): WordBool; safecall;
function GetInput1Selection: IUnknown; safecall;
InputSelection型は単純な整数型または列挙型のようですが、どこにも指定されていません。ドキュメントには、14の異なる可能な値とその意味の表のみが記載されています。
理想的には、自分のタイプを宣言したいと思います。
TInputSelection = (isCustom, isStartReset, ...)
タイプライブラリがこれらの関数を定義する方法は次のとおりです。
virtual HRESULT __stdcall SetInput1Selection (/*[in]*/ IUnknown * inputSelection, /*[out,retval]*/ VARIANT_BOOL * pRetVal ) = 0;
virtual HRESULT __stdcall GetInput1Selection (/*[out,retval]*/ IUnknown * * pRetVal ) = 0;
しかし、どうすればこれを機能させることができますか?