Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Wmi / managed / System / Management / wmiutil.cs / 1305376 / wmiutil.cs
using System;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using WbemClient_v1;
namespace System.Management
{
[ComImport, Guid("87A5AD68-A38A-43ef-ACA9-EFE910E5D24C"),
InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
internal interface IWmiEventSource
{
[PreserveSig]
void Indicate(IntPtr pIWbemClassObject);
[PreserveSig]
void SetStatus(
int lFlags,
int hResult,
[MarshalAs(UnmanagedType.BStr)] string strParam ,
IntPtr pObjParam
);
}
#if USEIWOS
// The following is a manually defined wrapper for IWbemObjectSink
// since the size_is attribute cannot be dealt with by TlbImp.
[Guid("7c857801-7381-11cf-884d-00aa004b2e24"),
InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IWbemObjectSink
{
[PreserveSig]
void Indicate(
long lObjectCount,
[MarshalAs(UnmanagedType.Interface, SizeParamIndex=0)] IWbemClassObject [] apObjArray
);
[PreserveSig]
void SetStatus(
long lFlags,
int hResult,
[MarshalAs(UnmanagedType.BStr)] string strParam,
[MarshalAs(UnmanagedType.Interface)] IWbemClassObject pObjParam
);
};
#endif
//Class for calling GetErrorInfo from managed code
class WbemErrorInfo
{
public static IWbemClassObjectFreeThreaded GetErrorInfo()
{
IErrorInfo errorInfo = GetErrorInfo(0);
if(null != errorInfo)
{
IntPtr pUnk = Marshal.GetIUnknownForObject(errorInfo);
IntPtr pIWbemClassObject;
Marshal.QueryInterface(pUnk, ref IWbemClassObjectFreeThreaded.IID_IWbemClassObject, out pIWbemClassObject);
Marshal.Release(pUnk);
// The IWbemClassObjectFreeThreaded instance will own reference count on pIWbemClassObject
if(pIWbemClassObject != IntPtr.Zero)
return new IWbemClassObjectFreeThreaded(pIWbemClassObject);
}
return null;
}
[ResourceExposure( ResourceScope.None),DllImport("oleaut32.dll", PreserveSig=false)]
static extern IErrorInfo GetErrorInfo(int reserved);
}
//RCW for IErrorInfo
[ComImport]
[Guid("1CF2B120-547D-101B-8E65-08002B2BD119")]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
internal interface IErrorInfo
{
Guid GetGUID();
[return:MarshalAs(UnmanagedType.BStr)]
string GetSource();
[return:MarshalAs(UnmanagedType.BStr)]
string GetDescription();
[return:MarshalAs(UnmanagedType.BStr)]
string GetHelpFile();
uint GetHelpContext();
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
using System;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using WbemClient_v1;
namespace System.Management
{
[ComImport, Guid("87A5AD68-A38A-43ef-ACA9-EFE910E5D24C"),
InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
internal interface IWmiEventSource
{
[PreserveSig]
void Indicate(IntPtr pIWbemClassObject);
[PreserveSig]
void SetStatus(
int lFlags,
int hResult,
[MarshalAs(UnmanagedType.BStr)] string strParam ,
IntPtr pObjParam
);
}
#if USEIWOS
// The following is a manually defined wrapper for IWbemObjectSink
// since the size_is attribute cannot be dealt with by TlbImp.
[Guid("7c857801-7381-11cf-884d-00aa004b2e24"),
InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IWbemObjectSink
{
[PreserveSig]
void Indicate(
long lObjectCount,
[MarshalAs(UnmanagedType.Interface, SizeParamIndex=0)] IWbemClassObject [] apObjArray
);
[PreserveSig]
void SetStatus(
long lFlags,
int hResult,
[MarshalAs(UnmanagedType.BStr)] string strParam,
[MarshalAs(UnmanagedType.Interface)] IWbemClassObject pObjParam
);
};
#endif
//Class for calling GetErrorInfo from managed code
class WbemErrorInfo
{
public static IWbemClassObjectFreeThreaded GetErrorInfo()
{
IErrorInfo errorInfo = GetErrorInfo(0);
if(null != errorInfo)
{
IntPtr pUnk = Marshal.GetIUnknownForObject(errorInfo);
IntPtr pIWbemClassObject;
Marshal.QueryInterface(pUnk, ref IWbemClassObjectFreeThreaded.IID_IWbemClassObject, out pIWbemClassObject);
Marshal.Release(pUnk);
// The IWbemClassObjectFreeThreaded instance will own reference count on pIWbemClassObject
if(pIWbemClassObject != IntPtr.Zero)
return new IWbemClassObjectFreeThreaded(pIWbemClassObject);
}
return null;
}
[ResourceExposure( ResourceScope.None),DllImport("oleaut32.dll", PreserveSig=false)]
static extern IErrorInfo GetErrorInfo(int reserved);
}
//RCW for IErrorInfo
[ComImport]
[Guid("1CF2B120-547D-101B-8E65-08002B2BD119")]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
internal interface IErrorInfo
{
Guid GetGUID();
[return:MarshalAs(UnmanagedType.BStr)]
string GetSource();
[return:MarshalAs(UnmanagedType.BStr)]
string GetDescription();
[return:MarshalAs(UnmanagedType.BStr)]
string GetHelpFile();
uint GetHelpContext();
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- TransactionFlowAttribute.cs
- WmlListAdapter.cs
- MonikerHelper.cs
- ClickablePoint.cs
- XmlDataSourceNodeDescriptor.cs
- OleDragDropHandler.cs
- GroupQuery.cs
- CharacterBufferReference.cs
- AutomationElementIdentifiers.cs
- ObservableCollection.cs
- PerformanceCounterNameAttribute.cs
- AsymmetricSignatureFormatter.cs
- RegexBoyerMoore.cs
- ClassicBorderDecorator.cs
- GeometryDrawing.cs
- MemberPath.cs
- ListViewTableRow.cs
- IndicCharClassifier.cs
- Binding.cs
- DataObjectAttribute.cs
- StrongName.cs
- OdbcErrorCollection.cs
- DbParameterHelper.cs
- StylusPlugin.cs
- TextBoxView.cs
- TriggerCollection.cs
- VersionedStream.cs
- ProviderException.cs
- MergePropertyDescriptor.cs
- WebPartCollection.cs
- DataListItem.cs
- MessageBox.cs
- FacetDescription.cs
- CapabilitiesRule.cs
- Win32Interop.cs
- NullRuntimeConfig.cs
- DocumentPage.cs
- MultipleViewProviderWrapper.cs
- AssertFilter.cs
- ColumnCollectionEditor.cs
- UrlPath.cs
- HandlerBase.cs
- XmlDataLoader.cs
- InternalControlCollection.cs
- Module.cs
- Pen.cs
- Section.cs
- OracleTimeSpan.cs
- dtdvalidator.cs
- KeyPressEvent.cs
- WebPartCancelEventArgs.cs
- securitycriticaldata.cs
- AssemblyCache.cs
- InkCanvasSelection.cs
- WebPartExportVerb.cs
- SHA384Managed.cs
- StringArrayConverter.cs
- ResourceReader.cs
- QualifiedCellIdBoolean.cs
- sitestring.cs
- ElementInit.cs
- SoapAttributeOverrides.cs
- ModifyActivitiesPropertyDescriptor.cs
- DataServiceOperationContext.cs
- SqlCacheDependencySection.cs
- BoolLiteral.cs
- ColumnResult.cs
- MatcherBuilder.cs
- Pair.cs
- AppAction.cs
- DataServicePagingProviderWrapper.cs
- SessionPageStateSection.cs
- CTreeGenerator.cs
- AppLevelCompilationSectionCache.cs
- SerializableAttribute.cs
- SessionPageStateSection.cs
- MenuBase.cs
- PageHandlerFactory.cs
- Rotation3D.cs
- LabelDesigner.cs
- Win32.cs
- DockPattern.cs
- LogLogRecordHeader.cs
- DbConnectionPoolGroup.cs
- SiteMap.cs
- Win32NamedPipes.cs
- WhitespaceRuleReader.cs
- ActiveXHost.cs
- FlowDocumentReader.cs
- ExtentCqlBlock.cs
- DocumentOrderQuery.cs
- TransactionalPackage.cs
- ImageCodecInfoPrivate.cs
- UserMapPath.cs
- MgmtConfigurationRecord.cs
- SHA384.cs
- RectKeyFrameCollection.cs
- TextTreeObjectNode.cs
- FrameAutomationPeer.cs
- DrawItemEvent.cs