注册对象创建扩展

在创建 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 属性下注册对象创建扩展。 它们是 createWizardcreateWizardExt

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 函数生成。