3.2.4.2.45.20 GetModuleDefinition (Opnum 26)
The GetModuleDefinition method returns a pointer to the module definition with the specified Name and Module type from the List of Persisted Module Definitions (section 3.2.1.6).
[id(FSRM_DISPID_CLASSIFICATION_MANAGER | 0x09)] HRESULT GetModuleDefinition( [in] BSTR moduleName, [in] FsrmPipelineModuleType moduleType, [out, retval] IFsrmPipelineModuleDefinition** moduleDefinition );
-
moduleName: Contains the name of the module definition to retrieve.
-
moduleType: Contains the type of the module definition to retrieve. For possible types, see the FsrmPipelineModuleType (section 2.2.1.2.12) enumeration.
-
moduleDefinition: An IFsrmPipelineModuleDefinition interface pointer (section 3.2.4.2.43) to the module definition. Query the IFsrmPipelineModuleDefinition interface to get the interface pointer for the specified module.
-
Return Values: The method MUST return zero on success, or a nonzero error code on failure.
Return value/code Description 0x80045301
FSRM_E_NOT_FOUNDThe specified module definition could not be found.
0x80045308
FSRM_E_INVALID_NAMEThe specified name is empty or NULL.
0x80070057
E_INVALIDARGThis code is returned for the following reasons:
-
The moduleType parameter is not a valid FsrmPipelineModuleType (section 2.2.1.2.12) value.
-
The specified name exceeds the maximum length of 100 characters.
-
Upon receiving this message, the server MUST validate parameters:
-
Verify that moduleDefinition is not NULL.
-
Verify that moduleType contains a valid FsrmPipelineModuleType value. If moduleType is FsrmPipelineModuleType_Unknown, the parameter MUST be considered an invalid value.
Upon successful validation of parameters, the server MUST perform the following actions or return a nonzero error code.
-
Create a new Non-Persisted Module Definition Instance (section 3.2.1.6.2.2).
-
Populate the configuration data of the Non-Persisted Module Definition Instance from the Persisted Module Definition (section 3.2.1.6.2.1) in the List of Persisted Module Definitions with the specified module name.
-
Set moduleDefinition to the IFsrmPipelineModuleDefinition interface pointer of the newly created Non-Persisted Module Definition Instance.