IOleContainer
枚举文档和正在运行的容器中的所有目标,该接口支持枚举目标包含和嵌入的所有链接,同样支持名字解析和静默更新链接来源
使用IOleContainer接口可以便于静默升级链接源,而不需要中断。
IOleContainer::EnumObjects 枚举当前容器中的所有目标
HRESULT EnumObjects([in] DWORD grfFlags, [out] IEnumUnknown **ppenum);
grfFlags 指定容器中的哪些目标会被枚举 可取的值如下
typedef enum tagOLECONTF {
OLECONTF_EMBEDDINGS = 1, 嵌入的目标
OLECONTF_LINKS = 2, 链接目标
OLECONTF_OTHERS = 4, 非链接和嵌入的目标
OLECONTF_ONLYUSER = 8, 用户能看到的
OLECONTF_ONLYIFRUNNING = 16 当前容器中处于运行状态的链接和嵌入的目标
} OLECONTF;
ppenum 指向IEnumUnknown的指针,返回指向枚举目标的指针。
IEnumUnknown::Next获取枚举队列中的元素的接口IUnknown
通过IUnknown的接口 QueryInterface 获取目标的其他接口
操作完成后需要调用 IUnknown::Release来释放
枚举文档和正在运行的容器中的所有目标,该接口支持枚举目标包含和嵌入的所有链接,同样支持名字解析和静默更新链接来源
使用IOleContainer接口可以便于静默升级链接源,而不需要中断。
IOleContainer::EnumObjects 枚举当前容器中的所有目标
HRESULT EnumObjects([in] DWORD grfFlags, [out] IEnumUnknown **ppenum);
grfFlags 指定容器中的哪些目标会被枚举 可取的值如下
typedef enum tagOLECONTF {
OLECONTF_EMBEDDINGS = 1, 嵌入的目标
OLECONTF_LINKS = 2, 链接目标
OLECONTF_OTHERS = 4, 非链接和嵌入的目标
OLECONTF_ONLYUSER = 8, 用户能看到的
OLECONTF_ONLYIFRUNNING = 16 当前容器中处于运行状态的链接和嵌入的目标
} OLECONTF;
ppenum 指向IEnumUnknown的指针,返回指向枚举目标的指针。
IEnumUnknown::Next获取枚举队列中的元素的接口IUnknown
通过IUnknown的接口 QueryInterface 获取目标的其他接口
操作完成后需要调用 IUnknown::Release来释放