1 回答

TA貢獻(xiàn)1841條經(jīng)驗(yàn) 獲得超3個(gè)贊
我想,我已經(jīng)解決了這一問(wèn)題,通過(guò)更換IDispEventSimpleImpl的與IDispEventImpl的。
這或多或少是一個(gè)即插即用的替代品,但是它確實(shí)需要引用類(lèi)型庫(kù)。
ATL類(lèi)繼承了多個(gè)基類(lèi),包括一個(gè)定義為WorkspaceEventSink的基類(lèi)。
class ATL_NO_VTABLE CImportChannels :
...
public WorkspaceEventSink,
...
{
...
}
先前定義為
typedef IDispEventSimpleImpl< 42, CImportChannels, &DIID_ICs3WorkspaceEvents> WorkspaceEventSink ;
我已將定義更改為
typedef IDispEventImpl< 42, CImportChannels, &DIID_ICs3WorkspaceEvents, &LIBID_McAnalEventsNET, 1, 0 > WorkspaceEventSink ;
除了將IDispEventSimpleImpl更改為IDispEventImpl外,我還添加了類(lèi)型庫(kù)的GUID及其主要版本號(hào)和次要版本號(hào)。
最初,我嘗試不使用主要版本號(hào)和次要版本號(hào),但這導(dǎo)致了類(lèi)型庫(kù)未注冊(cè)的異常。
無(wú)需進(jìn)行其他更改(例如對(duì)接收器映射進(jìn)行更改)。
- 1 回答
- 0 關(guān)注
- 330 瀏覽
添加回答
舉報(bào)