C# 在C中激活任务栏图标
我在应用程序C++侧的代码中激活任务栏图标。我用过 // 在c中有类似的东西吗?所以我可以调用这个激活,有可能用c中的ITaskbarList接口获取对象吗C# 在C中激活任务栏图标,c#,c++,winforms,C#,C++,Winforms,我在应用程序C++侧的代码中激活任务栏图标。我用过 // 在c中有类似的东西吗?所以我可以调用这个激活,有可能用c中的ITaskbarList接口获取对象吗 我的应用程序的主窗体是System.Windows.Forms.Form。我想激活任务栏上的图标。ITaskbarList来自哪里?您不能搜索并找到它所在的程序集和命名空间吗?我还没有搜索,但是C和C++之间的共同点是.NETFramework和其他库。他们可以使用相同的库,他们可以访问底层的Win32内容。就这些。当然你可以在C中做完全相
我的应用程序的主窗体是System.Windows.Forms.Form。我想激活任务栏上的图标。ITaskbarList来自哪里?您不能搜索并找到它所在的程序集和命名空间吗?我还没有搜索,但是C和C++之间的共同点是.NETFramework和其他库。他们可以使用相同的库,他们可以访问底层的Win32内容。就这些。当然你可以在C中做完全相同的事情。声明接口。使用CoCreateInstance创建它。你走吧。你肯定会在这里找到你需要的:“这里的C++代码是本地的,而不是托管的。它不在.net程序集中。所以这需要互操作。这并不难。
DECLARE_INTERFACE_(ITaskbarList,IUnknown)
{
STDMETHOD(QueryInterface)(THIS_ REFIID riid,LPVOID* ppvObj) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
STDMETHOD(ActiveTab)(HWND) PURE;
STDMETHOD(AddTab)(HWND) PURE;
STDMETHOD(DeleteTab)(HWND) PURE;
STDMETHOD(HrInit)(HWND) PURE;
};
ITaskbarList *p_taskbar = NULL;
CoCreateInstance(CLSID_TaskbarList, 0,
CLSCTX_INPROC_SERVER, IID_ITaskbarList, (void**)&p_taskbar);
p_taskbar->ActivateTab(hwnd);