不同格式的 GUID 和 CLSID?
GUID and CLSID in different formats?
我正在 DirectShow 中开发 MP4 过滤器。我目前正在尝试创建 IBaseFilter 对象,但要求之一是 CoCreateInstance 的 CLSID。
我对这个 ID 的来源感到困惑。我可以从 GraphEdit > Insert Filter 获取它吗?如果是这样,它会以 {00000000-0000-0000-0000-000000000000} 的格式给出我但是我见过的大多数示例都是
的格式
static const GUID CLSID_MPEG4Demux = { 0x025BE2E4, 0x1787, 0x4DA4, 0xA5, 0x85, 0xC5, 0xB2, 0xB9, 0xEE, 0xB5, 0x7C };
我需要转换器吗?
CLSID 是已注册 class 的基本 COM 标识符。已注册供 public 使用的 DirectShow 过滤器都有其 CLSID,由其开发人员硬编码。如果您从事 MP4 过滤器的工作假设您是 MP4 过滤器的开发人员,那么您需要将自己的 CLSID 放入(由 "Create GUID" (guidgen.exe) tool, by API etc). If you want to look up CLSID of existing registered filter, you can find it out using GraphEdit, or rather GraphStudioNext 浏览已注册的过滤器列表生成:
我正在 DirectShow 中开发 MP4 过滤器。我目前正在尝试创建 IBaseFilter 对象,但要求之一是 CoCreateInstance 的 CLSID。
我对这个 ID 的来源感到困惑。我可以从 GraphEdit > Insert Filter 获取它吗?如果是这样,它会以 {00000000-0000-0000-0000-000000000000} 的格式给出我但是我见过的大多数示例都是
的格式static const GUID CLSID_MPEG4Demux = { 0x025BE2E4, 0x1787, 0x4DA4, 0xA5, 0x85, 0xC5, 0xB2, 0xB9, 0xEE, 0xB5, 0x7C };
我需要转换器吗?
CLSID 是已注册 class 的基本 COM 标识符。已注册供 public 使用的 DirectShow 过滤器都有其 CLSID,由其开发人员硬编码。如果您从事 MP4 过滤器的工作假设您是 MP4 过滤器的开发人员,那么您需要将自己的 CLSID 放入(由 "Create GUID" (guidgen.exe) tool, by API etc). If you want to look up CLSID of existing registered filter, you can find it out using GraphEdit, or rather GraphStudioNext 浏览已注册的过滤器列表生成: