[This is preliminary documentation and subject to change.]
The DIWbemServices.PutClassAsync method creates a new class, or it updates an existing one. The class specified by the pObject parameter must be correctly initialized with all of the required property values. The call immediately returns and success or failure notification to the object sink.
DIWbemServices.PutClassAsync( [in] pObjectAs Object,[in]lFlags As Long , [in] pCtxAs Object,[in]pResponseHandlerAs Object) As Long
| WBEM_E_ACCESS_DENIED | The current user does not have permission to create classes. | 
| WBEM_E_ALREADY_EXISTS | WBEM_FLAG_CREATE_ONLY flag was specified but the class already exists. | 
| WBEM_E_FAILED | Unspecified error. | 
| WBEM_E_INVALID_CLASS | The specified class was invalid. | 
| WBEM_E_INVALID_PARAMETER | An invalid parameter was specified, or the namespace could not be parsed. | 
| WBEM_E_NOT_FOUND | WBEM_FLAG_UPDATE_ONLY flag was specified, but the class does not exist. | 
| WBEM_E_OUT_OF_MEMORY | There was not enough memory to complete the operation. | 
| WBEM_NO_ERROR | Success. | 
Other status or error codes are reported to the object sink specified by the pReponseHandler parameter.
Asynchronous Methods, Class Creation and Modification Rules, DIWbemServices.PutClass