注册对象创建扩展
在创建 Active Directory 域服务中的对象创建扩展 DLL 时,必须在 Windows 注册表和 Active Directory 域服务中注册,以便 COM 和 Active Directory 管理 MMC 管理单元知道该扩展。
在 Windows 注册表中注册
与所有 COM 服务器一样,对象创建扩展必须在 Windows 注册表中注册。 扩展会在以下键下进行注册:
HKEY_CLASSES_ROOT
CLSID
<extension CLSID>
InProcServer32
(Default) = <extension path>
ThreadingModel = Apartment
“<extension CLSID>”为 StringFromCLSID 函数所生成 CLSID 的字符串表示形式。 “<extension path>”包含扩展 DLL 的路径和文件名。 所有对象创建扩展的 ThreadingModel 值必须为“Apartment”。
注册 Active Directory 域服务
对象创建扩展注册只适用于一区域设置。 如果对象创建扩展适用于所有区域设置,则必须在 DisplaySpecifiers 容器中所有区域设置子容器的对象类 displaySpecifier 对象中注册。 如果对象创建扩展是为某个区域设置而本地化的,则应将其注册到该区域设置子容器中的 displaySpecifier 对象中。 有关 DisplaySpecifiers 容器和区域设置的详细信息,请参阅显示说明符和 DisplaySpecifiers 容器。
可以在两个 DisplaySpecifier 属性下注册对象创建扩展。 它们是 createWizard 和 createWizardExt。
creationWizard 属性可标识主要对象创建扩展,以替换 Active Directory 管理单元中的现有或本地对象创建向导。主创建扩展提供第一组页面,托管方式与本机页面相同。 此属性为单值属性,需要采用以下格式:
<CLSID>
“<CLSID>”是 COM 对象 CLSID 的字符串表示形式,由 StringFromCLSID 函数生成。
createWizardExt 属性标识辅助对象创建扩展。 辅助创建扩展可将向导页面添加到本机页面或主扩展中。 此属性为多值属性,需要采用以下格式:
<order number>,<CLSID>
“<order number>”是一个无符号数字,表示页面在向导中的位置。 显示创建向导时,将使用每个值的“<order number>”比较来对值进行排序。 如果多个值具有相同的“<order number>”,则会按照从 Active Directory 服务器读取的顺序来加载这些页面。 如果可能,应使用不存在的“<order number>”(即一个未被属性中其他值使用过的值)。 在“<order number>“序列中,没有规定的起始位置,也允许存在间隙。
“<CLSID>”是 COM 对象 CLSID 的字符串表示形式,由 StringFromCLSID 函数生成。