CLSID_FileOpenDialog注册表位置查询及CID COM对象技术问询
查找通用项对话框(CID)COM对象及CLSID_FileOpenDialog的注册表位置
一、CLSID_FileOpenDialog的注册表位置
CLSID_FileOpenDialog的标准CLSID是{DC1C5A9C-E88A-4dde-A5A1-60F82A20AEF7},对应的注册表项位于:
HKEY_CLASSES_ROOT\CLSID\{DC1C5A9C-E88A-4dde-A5A1-60F82A20AEF7}HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{DC1C5A9C-E88A-4dde-A5A1-60F82A20AEF7}
该COM对象的InProcServer32键默认值指向shell32.dll,是Vista及后续系统中新版通用文件对话框的核心实现。
二、关于CID相关COM对象的说明
- 你找到的
comdlg32.dll对应的CLSID{725F645B-EAED-4fc5-B1C5-D9AD0ACCBA5E}确实是Vista之前的旧版通用对话框组件,新版已不再将其作为核心依赖。 HKEY_USERS\S-1-5-21-1285309903-269343738-3178715341-1001\Software\Microsoft\Windows\CurrentVersion\Explorer\CIDOpen是用户个性化配置项,并非COM对象的CLSID注册项,仅存储当前用户对通用文件对话框的设置信息,和COM组件注册无关。- 新版通用文件对话框的核心COM对象分为两类:
- 打开对话框:
CLSID_FileOpenDialog(对应上述CLSID) - 保存对话框:
CLSID_FileSaveDialog,CLSID为{C0B4E2F3-BA21-4773-8DBA-335EC946EB8B},同样注册在HKEY_CLASSES_ROOT\CLSID和HKLM\SOFTWARE\Classes\CLSID路径下。
- 打开对话框:
三、验证方式
- 打开注册表编辑器,导航到上述CLSID路径,检查
InProcServer32键的默认值是否为shell32.dll。 - 通过代码调用
CoCreateInstance创建该CLSID的实例,可直接验证其为新版通用文件对话框的实现。
内容的提问来源于stack exchange,提问作者Okapi
相关产品推荐
相关产品推荐

