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
- XmlNullResolver.cs
- EventProvider.cs
- CodeGeneratorOptions.cs
- WebPartEventArgs.cs
- Preprocessor.cs
- SelectionService.cs
- DictionaryGlobals.cs
- BitmapMetadata.cs
- ClientConfigurationHost.cs
- BookmarkWorkItem.cs
- Random.cs
- ShutDownListener.cs
- WindowsListView.cs
- OleCmdHelper.cs
- TransformedBitmap.cs
- BinaryObjectReader.cs
- HandleDictionary.cs
- PageContentCollection.cs
- ToolStripEditorManager.cs
- CorrelationTokenInvalidatedHandler.cs
- SecUtil.cs
- WindowsListViewGroupSubsetLink.cs
- AnnotationMap.cs
- SapiAttributeParser.cs
- EventLogEntry.cs
- UserControl.cs
- Event.cs
- EdmProviderManifest.cs
- VisemeEventArgs.cs
- SQLMoney.cs
- SystemException.cs
- TypeToken.cs
- FloatUtil.cs
- MenuItemCollection.cs
- DataGridViewRowPostPaintEventArgs.cs
- WindowsFormsHostAutomationPeer.cs
- RuntimeConfig.cs
- Binding.cs
- CompoundFileReference.cs
- UserUseLicenseDictionaryLoader.cs
- PathFigureCollection.cs
- AnimationClock.cs
- GridEntryCollection.cs
- IdentityReference.cs
- SqlExpressionNullability.cs
- Parallel.cs
- DataGridViewTextBoxColumn.cs
- ClientTargetCollection.cs
- SurrogateEncoder.cs
- LogStore.cs
- X509Extension.cs
- RowUpdatedEventArgs.cs
- TextChangedEventArgs.cs
- SelectionList.cs
- AddingNewEventArgs.cs
- DoubleLink.cs
- ScriptManager.cs
- BindableAttribute.cs
- IconHelper.cs
- DbMetaDataCollectionNames.cs
- LayoutManager.cs
- CodeTypeDelegate.cs
- ColumnResizeAdorner.cs
- Soap12ServerProtocol.cs
- SimpleHandlerBuildProvider.cs
- DoubleLinkList.cs
- PatternMatcher.cs
- Odbc32.cs
- HtmlTextArea.cs
- wgx_sdk_version.cs
- InitializationEventAttribute.cs
- UriWriter.cs
- AttachmentService.cs
- DataTable.cs
- ConnectivityStatus.cs
- BindingListCollectionView.cs
- CustomTypeDescriptor.cs
- DSASignatureDeformatter.cs
- WebPartMenu.cs
- EdgeModeValidation.cs
- Columns.cs
- Unit.cs
- InvalidPrinterException.cs
- ObjectStateEntry.cs
- FormViewDeleteEventArgs.cs
- MergeFilterQuery.cs
- FontFamilyValueSerializer.cs
- CommentEmitter.cs
- SrgsGrammarCompiler.cs
- FormClosedEvent.cs
- Vector3DAnimationUsingKeyFrames.cs
- XpsStructure.cs
- TypedLocationWrapper.cs
- UserPersonalizationStateInfo.cs
- PathFigureCollectionConverter.cs
- SQLDouble.cs
- TextTreeTextNode.cs
- XmlSerializerFactory.cs
- EmptyStringExpandableObjectConverter.cs
- UnsafeNativeMethods.cs