CIRCCOLL 属性示例:演示集合/枚举

更新:2007 年 11 月

CIRCCOLL 属性示例展示如何使用 ATL 实现对象的集合/枚举。

CIRCCOLL 示例为此示例的非属性化版本。

安全说明:

提供该示例代码是为了阐释一个概念,并不代表着最安全的编码实践,因此不应在应用程序或网站中使用该示例代码。对于超出本示例代码的预期用途以外的使用所造成的偶然或继发性损失,Microsoft 不承担任何责任。

获取示例和安装示例的说明:

  • 在 Visual Studio 的“帮助”菜单上,单击“示例”。

    有关更多信息,请参见定位示例文件

  • 示例的最新版本和完整列表可以从 Visual Studio 2008 Samples page(Visual Studio 2008 示例页面)联机获取。

  • 还可以在计算机的硬盘上查找示例。默认情况下,示例和自述文件将复制到 \Program Files\Visual Studio 9.0\Samples\ 下的文件夹中。对于 Visual Studio 速成版,所有示例都位于联机位置。

生成并运行示例

生成并运行此示例

  1. 打开解决方案文件 circoll.sln。

  2. 在“生成”菜单中,单击“生成解决方案”。

  3. 在解决方案资源管理器中,右击“CircCollClient”项目并选择“设为启动项目”。

  4. 在“调试”菜单中单击“启动”。

  5. Visual Basic 窗体 Form1 将打开。单击按钮以激活应用程序。

示例的工作机制

实现了三个对象类:集合创建者、集合和集合内的对象。只有集合创建者才有与之关联的 coclass(有关 coclass 声明,请参见 Circcoll.idl)。集合创建者具有返回圆形对象集合的方法。集合对象实现 ItemCount_NewItem 方法,以便使用 For...Next 和 For Each... 语法都可以从 Visual Basic 中对该对象进行操作。

属性

此示例使用下面的属性:

aggregatable、coclass、dual、emitidl、helpstring、id、in、module、noncreatable、object、out、pointer_default、progid、propget、propput、restricted、retval、support_error_info、threading、uuid、version

关键字

此示例使用以下关键字:

AddRef、ATLASSERT、ATLTRACE、BEGIN_COM_MAP、BEGIN_OBJECT_MAP、CComCoClass、CComObject::CreateInstance、CComObjectRoot、CComVariant、COM_INTERFACE_ENTRY、DECLARE_NOT_AGGREGATABLE、DECLARE_REGISTRY、END_COM_MAP、END_OBJECT_MAP、glBegin、glEnd、glNormal3d、glPolygonMode、glVertex2d、glVertex3d、IConnectionPointContainerImpl::FindConnectionPoint、IConnectionPointImpl::Advise、IDispatchImpl、ISupportErrorInfo、OBJECT_ENTRY、QueryInterface、Release、USES_CONVERSION、VariantCopy、VariantInit

说明:

其中某些示例(如此示例)尚未经过修改以反映 Visual C++ 向导、库和编译器中所做的更改,但仍演示了如何完成所需的任务。

请参见

其他资源

ATL 属性示例