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
- ExpressionBuilderContext.cs
- IMembershipProvider.cs
- ArgumentOutOfRangeException.cs
- ToolStripItemEventArgs.cs
- PartialClassGenerationTaskInternal.cs
- DelegateTypeInfo.cs
- CachingParameterInspector.cs
- HttpCachePolicyBase.cs
- KnownTypeDataContractResolver.cs
- WebColorConverter.cs
- Page.cs
- PerformanceCounterLib.cs
- InputProviderSite.cs
- GacUtil.cs
- ThrowHelper.cs
- DataObject.cs
- SourceChangedEventArgs.cs
- TrustManagerMoreInformation.cs
- ByteBufferPool.cs
- StrokeSerializer.cs
- PieceNameHelper.cs
- versioninfo.cs
- DataStorage.cs
- Decoder.cs
- DecoderReplacementFallback.cs
- CodeArrayCreateExpression.cs
- CacheSection.cs
- SimpleRecyclingCache.cs
- DoubleKeyFrameCollection.cs
- Canvas.cs
- FontSizeConverter.cs
- TextSelection.cs
- ParserOptions.cs
- TableCellCollection.cs
- TableLayoutCellPaintEventArgs.cs
- ViewBox.cs
- SecurityUtils.cs
- TagPrefixInfo.cs
- XmlSchemaAll.cs
- WorkerRequest.cs
- TemplateBuilder.cs
- SafeHandles.cs
- SHA512.cs
- SpeechRecognitionEngine.cs
- WindowsUpDown.cs
- SortQuery.cs
- serverconfig.cs
- ObjectCacheSettings.cs
- CharEntityEncoderFallback.cs
- DecimalAnimation.cs
- CharUnicodeInfo.cs
- SqlUserDefinedAggregateAttribute.cs
- LocalTransaction.cs
- SplineKeyFrames.cs
- TreeView.cs
- ContainerParagraph.cs
- ReadOnlyDataSource.cs
- WindowsFormsHelpers.cs
- ConfigurationElementProperty.cs
- SiteMapDataSourceView.cs
- ContractNamespaceAttribute.cs
- Quaternion.cs
- EraserBehavior.cs
- NGCPageContentCollectionSerializerAsync.cs
- InternalRelationshipCollection.cs
- PreservationFileWriter.cs
- MultiView.cs
- WebBrowserSiteBase.cs
- SqlDataSourceSelectingEventArgs.cs
- CodeAttachEventStatement.cs
- _StreamFramer.cs
- FrameworkTemplate.cs
- DotExpr.cs
- BlockCollection.cs
- StateBag.cs
- LicenseException.cs
- ExpressionQuoter.cs
- ProxyWebPart.cs
- LineServicesRun.cs
- SQLMoney.cs
- StateChangeEvent.cs
- XmlExtensionFunction.cs
- DataBindingCollection.cs
- Section.cs
- TextBox.cs
- TCPClient.cs
- ScriptReferenceEventArgs.cs
- OLEDB_Util.cs
- EventMappingSettings.cs
- documentsequencetextcontainer.cs
- ComponentEditorPage.cs
- HttpMethodConstraint.cs
- TranslateTransform.cs
- MouseBinding.cs
- FamilyCollection.cs
- WindowsToolbarAsMenu.cs
- DtrList.cs
- System.Data_BID.cs
- StrokeNodeEnumerator.cs
- SoapMessage.cs