[This is preliminary documentation and subject to change.]
Use the IWbemClassObject::SpawnInstance method to create a new instance of a class. The current object must be a class definition obtained from CIMOM using IWbemServices::GetObject or IWbemServices::CreateClassEnum. Then, use this class definition to create new instances. Each new instance is created locally within the process, and a call to IWbemServices::PutInstance is required to actually create the instance within CIMOM.
If you intend to discard the object before calling IWbemServices::PutInstance, simply make a call to IWbemClassObject::Release
Note that spawning an instance from an instance is legal.
HRESULT IWbemClassObject::SpawnInstance(
  [in] LONG lFlags,
  [out] IWbemClassObject **ppNewInstance
);
 | WBEM_E_INCOMPLETE_CLASS | The current object is not a valid class definition and cannot spawn new instances. Either it is incomplete, or it has not been registered with CIMOM using PutClass. | 
| WBEM_E_ILLEGAL_OPERATION | Returned if this method is used on an instance instead of a class | 
| WBEM_E_INVALID_PARAMETER | An invalid parameter was specified, or the namespace could not be parsed. | 
| WBEM_E_OUT_OF_MEMORY | There was not enough memory to complete the operation. | 
| WBEM_NO_ERROR | Success. | 
IWbemServices::GetObject, IWbemServices::PutInstance