IAppPublisher 接口 (shappmgr.h)

在 控制面板 中公开用于通过添加/删除程序发布应用程序的方法。 这是为此实现的主体接口。

继承

IAppPublisher 接口继承自 IUnknown 接口。 IAppPublisher 还具有以下类型的成员:

方法

IAppPublisher 接口具有这些方法。

 
IAppPublisher::EnumApps

创建枚举器,用于枚举应用程序发布者针对给定类别发布的所有应用程序。
IAppPublisher::GetCategories

检索一个结构,其中列出了应用程序发布者提供的类别。
IAppPublisher::GetNumberOfApps

已过时。 应用程序控制面板添加/删除程序的客户端可以返回E_NOTIMPL。
IAppPublisher::GetNumberOfCategories

已过时。 应用程序控制面板添加/删除程序的客户端可能会返回E_NOTIMPL。

注解

在 控制面板 中添加/删除程序会创建已注册的发布者对象并请求其 IAppPublisher 接口。 可以使用使用 IAppPublisher 创建的应用程序枚举器创建已发布的应用程序对象。

添加/删除程序 从发布者收集已发布应用程序的列表,然后使用发布者通过 Microsoft Active Directory 显示这些应用程序。 当用户单击“添加/删除 程序” 中的“ 添加新程序”时, 将显示已发布的应用程序列表。

可以使用以下组件对象模型 (COM) 接口在 添加/删除程序中 发布应用程序。

实现这些接口时,必须在注册表中注册 COM 对象。 若要注册发布者,请在以下注册表项下添加对象的类标识符 (CLSID) 。
HKEY_LOCAL_MACHINE
   Software
      Microsoft
         Windows
            CurrentVersion
               AppManagement
                  Publishers

例如,如果发布者名为“我的发布者”,请在“发布服务器”下创建名为“我的发布者”的新密钥,其默认REG_SZ值为发布者的 CLSID:

HKEY_LOCAL_MACHINE
   Software
      Microsoft
         Windows
            CurrentVersion
               AppManagement
                  Publishers
                     My Publisher
                        (Default) = {4D05CD3D-FFED-46bb-B9F1-321C26BE6362}

还可以按如下所示创建典型的 COM 服务器注册条目:

HKEY_CLASSES_ROOT
   CLSID
      {469EE8CE-1B86-4524-9042-AAA44FD9C8F2}
         (Default) = Sample Applications Publisher
         InProcServer32
            (Default) = pubdemo.dll
            ThreadingModel = Apartment

以这种方式注册发布者后,添加/删除程序通过为对象调用 CoCreateInstance 并在填充“添加新程序”视图时请求相应的 IAppPublisher 接口来创建对象的实例。 使用 IAppPublisher,添加/删除程序检索应用程序枚举器 (IEnumPublishedApps) 和描述已发布应用程序的信息。 IPublishedApp 的实现负责在其 IPublishedApp::Install 方法中安装关联的应用程序。 当用户单击用户界面中的“ 添加 ”或“ 稍后添加 ”按钮时,“添加/删除程序”将调用此方法。

要求

要求
最低受支持的客户端 Windows XP、Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 shappmgr.h

另请参阅

IEnumPublishedApps

IPublishedApp