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
- TransportConfigurationTypeElement.cs
- WebPartConnectionsConnectVerb.cs
- StorageAssociationSetMapping.cs
- RijndaelCryptoServiceProvider.cs
- VideoDrawing.cs
- WebBrowserEvent.cs
- Line.cs
- CompilerCollection.cs
- XmlQualifiedNameTest.cs
- ResourceKey.cs
- SHA384Managed.cs
- DataList.cs
- hresults.cs
- SoapExtensionReflector.cs
- CodeAccessSecurityEngine.cs
- Duration.cs
- processwaithandle.cs
- SqlCacheDependencySection.cs
- ExpandableObjectConverter.cs
- Span.cs
- TextParentUndoUnit.cs
- EventDescriptor.cs
- ConfigurationLocation.cs
- SourceSwitch.cs
- UserInitiatedRoutedEventPermission.cs
- ErasingStroke.cs
- WebUtil.cs
- QuotedPrintableStream.cs
- ModulesEntry.cs
- OdbcConnectionFactory.cs
- DbgUtil.cs
- HiddenFieldPageStatePersister.cs
- ReturnValue.cs
- RequestCacheValidator.cs
- Line.cs
- Win32MouseDevice.cs
- EmbossBitmapEffect.cs
- InternalConfigHost.cs
- BoundPropertyEntry.cs
- InvalidAsynchronousStateException.cs
- ClientSettings.cs
- PriorityBindingExpression.cs
- TransformerInfo.cs
- WebReferencesBuildProvider.cs
- assertwrapper.cs
- Condition.cs
- WindowsSlider.cs
- WebException.cs
- BCLDebug.cs
- PropertyRef.cs
- TagNameToTypeMapper.cs
- XsltContext.cs
- SpecularMaterial.cs
- PropertyTabAttribute.cs
- VirtualPathUtility.cs
- ReflectionTypeLoadException.cs
- CacheVirtualItemsEvent.cs
- TabRenderer.cs
- UpdateCommand.cs
- ValueUtilsSmi.cs
- EventProviderTraceListener.cs
- CodeMemberProperty.cs
- MetabaseReader.cs
- SQLSingle.cs
- Quaternion.cs
- PasswordPropertyTextAttribute.cs
- RangeBase.cs
- PolyBezierSegment.cs
- coordinatorscratchpad.cs
- OdbcFactory.cs
- ResourceExpressionBuilder.cs
- ReadOnlyCollectionBase.cs
- ProfileGroupSettings.cs
- ByteStreamGeometryContext.cs
- DllNotFoundException.cs
- TextParagraphProperties.cs
- DataGridViewRowHeightInfoPushedEventArgs.cs
- ActivityXRefPropertyEditor.cs
- JsonFormatWriterGenerator.cs
- XmlSchemaValidator.cs
- Unit.cs
- DynamicHyperLink.cs
- LinearGradientBrush.cs
- _ScatterGatherBuffers.cs
- Query.cs
- SingleConverter.cs
- MasterPageParser.cs
- UnhandledExceptionEventArgs.cs
- DesignerSerializerAttribute.cs
- TextEndOfSegment.cs
- StaticResourceExtension.cs
- ResponseBodyWriter.cs
- SafeCryptContextHandle.cs
- UnsafeNativeMethods.cs
- LinqDataSourceView.cs
- ListViewDesigner.cs
- HttpModuleAction.cs
- ObjectDataSourceStatusEventArgs.cs
- FrameworkPropertyMetadata.cs
- NavigateEvent.cs