我对 C# 还很陌生,我正在尝试完成一个我一直在从事的小项目,该项目使用少量 C# 代码来协助开发 Windows 桌面小工具。基本上,我正在尝试实施IDesktopGadget
接口,以便我可以使用运行小工具 http://msdn.microsoft.com/en-us/library/dd378390(VS.85).aspx method.
以下是迄今为止我从阅读有关类似接口的信息中得到的信息:
[ComImport]
[Guid("C1646BC4-F298-4F91-A204-EB2DD1709D1A")]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
interface IDesktopGadget
{
uint RunGadget([MarshalAs(UnmanagedType.LPWStr)] string gadgetPath);
}
不幸的是,当我尝试从中创建对象时出现错误:"Cannot create an instance of the abstract class or interface 'GadgetTask.IDesktopGadget'"
有人可以指出我正确的方向,同时帮助我理解我做错了什么吗?
实际上,您需要 DesktopGadget 对象的实现才能使用该界面。 MS 提供了一个标准 COM 对象来在 Windows 7 上执行此操作。您可以通过执行以下操作来创建实例:
Type t = Type.GetTypeFromCLSID(new Guid("924ccc1b-6562-4c85-8657-d177925222b6"));
IDesktopGadget dg = (IDesktopGadget)Activator.CreateInstance(t);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)