【发布时间】:2010-11-07 10:05:20
【问题描述】:
我正在尝试使用以下代码 (Delphi) 获取全局接口表:
uses Comobj, ActiveX;
var
cGIT : IGlobalInterfaceTable = NIL;
const
CLSID_StdGlobalInterfaceTable: TGUID = '{00000146-0000-0000-C000-000000000046}';
function GIT : IGlobalInterfaceTable;
begin
if (cGIT = NIL) then
OleCheck (CoCreateInstance (CLSID_StdGlobalInterfaceTable, NIL,
CLSCTX_ALL, IGlobalInterfaceTable, cGIT ));
Result := cGIT;
end;
但是,CoCreateInstance 会引发“类未注册”异常。事实上:在 HKCR/CLSID 中没有 {00000146- 等 } 条目。
应该注册哪个 dll 或 ocx,以便在注册表中获取此定义? 还是我做错了?
【问题讨论】:
-
此功能有效,前提是您使用此功能:TGUID = '{00000323-0000-0000-C000-000000000046}' 感谢两位评论者提供此答案。
标签: delphi com marshalling