0
目前,我有一些代碼,看起來像這樣COM:如何指定特定類型的COM對象爲IDL參數
void calc_run(Calculation *c, Input *i);
STDMETHODIMP CCalculation::run(IUnknown* input)
{
calc_run(calc,((CMyInputClass*)input)->get_input());
return S_OK;
}
換句話說CCalculation::run
想要一個指針CMyInputClass
,但目前需要IUnknown
和向下轉換。
據推測,這是不好的。
但是,我怎樣才能更精確地指定COM我想要的對象?我嘗試更改.c
,.h
和.idl
文件,但編譯器不會將CMyInputClass*
識別爲idl
中的類型說明。
interface ICalculation : IDispatch{
[id(2), helpstring("method run")] HRESULT run([in] CMyInputClass* input);
這樣做的正確方法是什麼?