Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/133.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在C中激活任务栏图标_C#_C++_Winforms - Fatal编程技术网

C# 在C中激活任务栏图标

C# 在C中激活任务栏图标,c#,c++,winforms,C#,C++,Winforms,我在应用程序C++侧的代码中激活任务栏图标。我用过 // 在c中有类似的东西吗?所以我可以调用这个激活,有可能用c中的ITaskbarList接口获取对象吗 我的应用程序的主窗体是System.Windows.Forms.Form。我想激活任务栏上的图标。ITaskbarList来自哪里?您不能搜索并找到它所在的程序集和命名空间吗?我还没有搜索,但是C和C++之间的共同点是.NETFramework和其他库。他们可以使用相同的库,他们可以访问底层的Win32内容。就这些。当然你可以在C中做完全相

我在应用程序C++侧的代码中激活任务栏图标。我用过

//

在c中有类似的东西吗?所以我可以调用这个激活,有可能用c中的ITaskbarList接口获取对象吗


我的应用程序的主窗体是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);