COleInsertDialog(OleUIInsertObject)对话框中判断是否是Object Type对象依据

来源:互联网 发布:黄牛抢购软件案 编辑:程序博客网 时间:2024/06/16 13:09

最近在学习OLE,每当弹出一个COleInsertDialog对话框时,可以Create New 一个Object Type。我每次看到这些Object Type 对象时都在想,COleInsertDialog是怎么知道一个程序可以做个被嵌入的。查看源码时,COleInsertDialog却直接调用了OleUIInsertObject,什么也看不到。我想,在将程序做为可以被嵌入的的对象时,可能在注册表里写下了某些东西。于是开始在注册表里找跟CLSID和ProgID相关的东西(手上刚好有一个Ole server的代码),终于发现了点东西。

 

跟注注册表里的两个键值有关,

HKLM/SOFTWARE/你的程序ProID/Insertable

HKLM/SOFTWARE/你的程序ProID/protocol/StdFileEditing/server

当删除Insertable和serve键r时,就不能通过COleInsertDialog来嵌入相应的程序,因为在COleInsertDialog中不会再显示对应程序的ProID。可见,COleInsertDialog进行的判断跟这两个键还是有关系的。