3.2.6.1.3 Site
The MQDS client MUST perform the following actions:
The arguments supplied to the Create Directory Object event MUST meet the following conditions. If any of these conditions is violated, processing of the event MUST end. rStatus MUST be set to DirectoryOperationResult.GenericError and rObjectGUID is undefined.
The iDirectoryObject.Name attribute MUST be populated.
If iAttributeList was not provided as an argument, then an iAttributeList MUST be constructed that MUST contain the names of all Site directory attributes listed in [MS-MQDMPR] section 3.1.1.7.
The aProp and apVar arguments for the S_DSCreateObject method (section 3.1.4.4) MUST be computed. For each property identifier listed in the following table, if the corresponding Site attribute name appears in iAttributeList and that attribute is populated in iDirectoryObject, add the property identifier to aProp, add a PROPVARIANT to apVar that is set to the correct type for the property and contains in the correct field the computed value for the property, as shown in the following table. Site attribute names that appear in iAttributeList but do not appear in the following table or subsections referenced by the table MUST be ignored.
Property Identifier
Property value computation
Property value computation
Unicode string copied from iDirectoryObject.PrimarySiteController.
PROPID_S_INTERVAL1 ([MS-MQMQ] section 2.3.3.5)
Integer copied from iDirectoryObject.IntraSiteReplicationInterval.
PROPID_S_INTERVAL2 ([MS-MQMQ] section 2.3.3.6)
Integer copied from iDirectoryObject.InterSiteReplicationInterval.
PROPID_S_PSC_SIGNPK ([MS-MQMQ] section 2.3.3.14)
MQUSERSIGNCERTS structure ([MS-MQMQ] section 2.2.21) copied from iDirectoryObject.PublicSigningKeyList.
PROPID_S_NT4_STUB ([MS-MQMQ] section 2.3.3.10)
If iDirectoryObject.MigratedFromMsmq10 is TRUE, set to 0x01. Else set to 0x00.
PROPID_S_FOREIGN ([MS-MQMQ] section 2.3.3.11)
If iDirectoryObject.ForeignSite is TRUE, set to 0x01. Else set to 0x00.
Other input arguments for the S_DSCreateObject method MUST be computed:
dwObjectType MUST be MQDS_SITE.
pwcsPathName MUST point to a buffer containing the value of iDirectoryObject.Name.
SecurityDescriptor MUST point to a buffer that contains the value of iDirectoryObject.Security if the attribute name Security appears in iAttributeList and iDirectoryObject.Security is populated, or MUST be set to NULL otherwise.
Other arguments MUST be set up as described in section 3.1.4.4.
The S_DSCreateObject method MUST be called with the given arguments. If the return value is not MQ_OK, processing MUST end. rStatus MUST be set to DirectoryOperationResult.GenericError and rObjectGUID is undefined.
rObjectGUID MUST be set to the GUIDs returned in the buffer pointed to by the pObjGuid argument of S_DSCreateObject.
Processing MUST end. rStatus MUST be set to DirectoryOperationResult.Success.