internal InstanceContext(WbemProvider.WbemInstance wbemInstance)
 {
     this.wbemInstance = wbemInstance;
 }
 internal MethodContext(WbemProvider.ParameterContext parms, string methodName, WbemNative.IWbemClassObject wbemInParms, WbemProvider.WbemInstance wbemInstance)
 {
     this.parms       = parms;
     this.methodName  = methodName;
     this.wbemInParms = wbemInParms;
     this.instance    = new WbemProvider.InstanceContext(wbemInstance);
     WbemNative.IWbemClassObject ppObject = null;
     WbemException.ThrowIfFail(parms.WbemServices.GetObject(parms.ClassName, 0, parms.WbemContext, ref ppObject, IntPtr.Zero));
     WbemNative.IWbemClassObject ppOutSignature = null;
     WbemException.ThrowIfFail(ppObject.GetMethod(methodName, 0, IntPtr.Zero, out ppOutSignature));
     WbemException.ThrowIfFail(ppOutSignature.SpawnInstance(0, out this.wbemOutParms));
 }
 internal WbemInstance(WbemProvider.WbemInstance wbemInstance, string className) : this(wbemInstance.parms, className)
 {
 }
 internal InstanceContext(WbemProvider.WbemInstance wbemInstance)
 {
     this.wbemInstance = wbemInstance;
 }