日期:2014-05-17  浏览次数:20388 次

shell扩展问题
C# code

[ComImpor,InterfaceType(ComInterfaceType.InterfaceIsIUnknown), Guid("000214FB-0000-0000-C000-000000000046")]
public interface IShellExecuteHook{
[PreserveSig()] /* 允许返回值为COM HRESULT */
int Execute(SHELLEXECUTEINFO sei);
}


接口前面的[]是用来配置接口属性的?
guid是什么?值怎么来的啊 ?

------解决方案--------------------
GUID是全球唯一标识符,
这里用来标识特定接口。

一般来说不需要标记这个特性,类型库导入程序会自动生成该特性以标识该对象。


可将此特性应用于程序集、接口、类、枚举、结构或委托,不过 Tlbimp.exe(类型库导入程序) 在导入类型库时将为您应用此属性。

传递给特性的字符串必须符合 Guid 类型可接受的构造函数参数格式。 为避免与 Guid 类型冲突,请显式使用长名 GuidAttribute。 仅当类型必须有特定的 GUID 时才应使用显式的 GUID。 如果省略该特性,则会自动分配一个 GUID。

GuidAttribute 类