如何獲得接口定義的類型庫內接口的屬性,返回HRESULT但希望它返回實際值的財產。COM - 如何獲取接口定義的類型庫中接口的屬性
編輯:
IDL:
interface IMyClassInterface : IDispatch
{
[propget, id(1), helpstring("Gets user Type")] HRESULT getUserDefineTypeVal([out,retval] UserDefineEnum *ptrVal);
[propput, id(1), helpstring("Sets user Type ")]HRESULT setUserDefineTypeVal([in] UserDefineEnum newVal);
}
物業在頭文件:
STDMETHOD(getUserDefineTypeVal)(UserDefineEnum *ptrVal);
STDMETHOD(setUserDefineTypeVal)(UserDefineEnum newVal);
物業在MYClass.cpp:
STDMETHODIMP CMYClass::getUserDefineTypeVal(UserDefineEnum *ptrVal) {
*ptrVal = UserDefineEnum(private_var_UserDefineTypeVal);
return S_OK;
}
AnotherClass within the Type Library:
IMyClassInterface* private_var_MyClass
STDMETHODIMP CAnotherClass::someMethod(){
UserDefineEnum* p;
if(private_var_MyClass->getUserDefineTypeVal(p)){
//do somestuff
}
}
的問題是如果條件不會返回true 。但下面的部分工作。
HRESULT hr = private_var_MyClass->getUserDefineTypeVal(p);
if(hr == S_OK){ do somestuff }
這樣做的問題是,如果我試圖case語句在HR唯一的值是0,我需要檢查在客戶方所設置的值。
你能否提供一些你認爲應該工作的代碼? – sharptooth 2010-02-01 15:17:01
添加的代碼,請檢查 – 2010-02-01 16:20:46