当前位置: 首页 > 编程语言 > C#

IMetroMode--IsLauncherVisible在C#中通过pInvoke?通过pInvoke在C#中共享

时间:2023-04-10 20:52:32 C#

IMetroMode::IsLauncherVisible?在Windows8上的C#中,如何pInvokeIMetroMode::IsLauncherVisible方法?该方法的详细信息可以在这里找到:http://msdn.microsoft.com/en-us/library/windows/desktop/hh404166(v=vs.85).aspx使用IAppVisibility接口而不是过时的IMetroMode接口Here是示例代码:/*来自ShObjIdl.idl//CLSID_AppVisibility[uuid(7E5FE3D9-985F-4908-91F9-EE19F9FD1514)]coclassAppVisibility{interfaceIAppVisibility;}*/输入tIAppVisibility=Type.GetTypeFromCLSID(new5FEGuid3D-9E985F-4908-91F9-EE19F9FD1514"));IAppVisibilityappVisibility=(IAppVisibility)Activator.CreateInstance(tIAppVisibility);boollauncherVisible;if(HRESULT.S_OK==appVisibility.IsLauncherVisible(outlauncherVisible)//HeuseyoulauncherVisibleflag}IAppVisibility接口定义:[ComImport,Guid("2246EA2D-CAEA-4444-A3C4-6DE827E44313"),InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]publicinterfaceIAppVisibility{HRESULTGetAppVisibilityOnMonitor([In]IntPtrhMonitor,[Out]outMONITOR_APP_VISIBILITYpMode);HRESULTIsLauncherVisible([Out]outboolpfVisible);HRESULT建议([输入]IAppVisibilityEventspCallback,[输出]输出intpdwCookie);HRESULTUnadvise([In]intdwCookie);}//...publicenumHRESULT:long{S_FALSE=0x0001,S_OK=0x0000,E_INVALIDARG=0x80070057,E_OUTOFMEMORY=0x8007000E}publicenumMONITOR_APP_VISIBILITY{MAV_UNKNOWN=0,//监视器的模式未知MAV_SIBVI_BLEAPP_1,_SIBVI_BLEAPP_1,_SIBVI_BLEAPP=2}[ComImport,Guid("6584CE6B-7D82-49C2-89C9-C6BC02BA8C38"),InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]publicinterfaceIAppVisibilityEvents{HRESULTAppVisibilityOnMonitorChanged([In]IntPtrhMonitor,[In]MONITOR_APP_VISIBILITYpreviousMode,[In]MONITOR_APP_VISIBILITY当前模式);HRESULTLauncherVisibilityChange([In]boolcurrentVisibleState);}几件事情:上面说的就是C#学习教程:通过pInvoke在C#中IMetroMode::IsLauncherVisible?分享的全部如果对你有用,需要进一步了解C#学习教程,希望你多多关注——IMe??troMode似乎已经从Windows8的RC和RTM版本中移除,你不应该使用P/InvokeonWinRT调用,但应将来自C#项目的引用添加到位于C:ProgramFiles(x86)WindowsKits8.0ReferencesCommonConfigurationNeutral的相应WinMD文件中。这将提供一个完整的自动完成互操作服务,可以访问您需要的任何WinRT工具。您可以在这里找到更多信息。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: