3.2.4.2.45.18 EnumModuleDefinitions (Opnum 24)
The EnumModuleDefinitions method returns all the moduleDefinitions from the List of Persisted Module Definitions (section 3.2.1.6) on the server that have the specified moduleType.
-
[id(FSRM_DISPID_CLASSIFICATION_MANAGER | 0x07)] HRESULT EnumModuleDefinitions( [in] FsrmPipelineModuleType moduleType, [in, defaultvalue(FsrmEnumOptions_None)] FsrmEnumOptions options, [out, retval] IFsrmCollection** moduleDefinitions );
moduleType: Contains the FsrmPipelineModuleType (section 2.2.1.2.12) of the modules to get.
options: Contains the FsrmEnumOptions (section 2.2.1.2.5) to use when enumerating the moduleDefinitions.
moduleDefinitions: Pointer to an IFsrmCollection interface pointer (section 3.2.4.2.1) that upon completion contains pointers to every module definition on the server that has the specified moduleType. A caller MUST release the collection received when the caller is done with it.
Return Values: The method MUST return zero on success, or a nonzero error code on failure.
-
Return value/code
Description
0x80045311
FSRM_E_NOT_SUPPORTED
The options parameter does not contain a valid FsrmEnumOptions (section 2.2.1.2.5) value.
0x80070057
E_INVALIDARG
This code is returned for the following reasons:
The moduleType parameter is not a valid value. If the moduleType is FsrmPipelineModuleType_Unknown, the parameter MUST be considered an invalid value.
The moduleDefinitions parameter is NULL.
Upon receiving this message, the server MUST validate parameters:
If moduleDefinitions is NULL, server MUST return E_INVALIDARG.
If moduleType is FsrmPipelineModuleType_Unknown or any value other than what is specified in section 2.2.1.2.12, the server MUST return E_INVALIDARG.
If options contains FsrmEnumOptions_Asynchronous or any value other than what is specified in section 2.2.1.2.5, the server MUST return FSRM_E_NOT_SUPPORTED.
Upon successful validation of parameters, the server MUST perform the following actions:
Create a List of Non-Persisted Module Definition Instances (section 3.2.1.6).
Populate it with Non-Persisted Module Definition Instances (section 3.2.1.6.2.2) copied from the Persisted Module Definitions (section 3.2.1.6.2.1) in the List of Persisted Module Definitions where each copied instance's Module Type is equivalent to moduleType.
Populate moduleDefinitions with the IFsrmPipelineModuleDefinition interface pointer (section 3.2.4.2.43) of every Non-Persisted Module Definition Instance in this newly created List of Non-Persisted Module Definition Instances.