首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

c++调用com组件有关问题关于CLSIDFromProgID参数有关问题

2013-03-25 
c++调用com组件问题关于CLSIDFromProgID参数问题现在要调用系统的com组件,只知道这个组件的名字是SB100PC.

c++调用com组件问题关于CLSIDFromProgID参数问题
现在要调用系统的com组件,只知道这个组件的名字是SB100PC.ocx
查询注册表可得到到那个id为{FE664F43-CCCB-46A4-ADD4-825303E0ADAD}
我要使用这个方法CLSIDFromProgID(OLESTR("SB100PC.?"),&clsid);
参数应该传什么,应该怎么查询啊。
[解决办法]

引用:
oleview 好像不会告诉你 ProgID

运行OleView.exe
File、View TypeLib...、打开c:\windows\system32\mci32.ocx、File、Save As...
得到的MCI32.IDL:
// Generated .IDL file (by the OLE/COM Object Viewer)
//
// typelib filename: MCI32.OCX

[
  uuid(C1A8AF28-1257-101B-8FB0-0020AF039CA3),
  version(1.1),
  helpstring("Microsoft Multimedia Control 6.0 (SP3)"),
  helpfile("MMEDIA98.CHM"),
  helpcontext(0x0003a980)
]
library MCI
{
    // TLib :     // TLib : OLE Automation : {00020430-0000-0000-C000-000000000046}
    importlib("stdole2.tlb");

    // Forward declare all types defined in this typelib
    interface IVBDataObject;
    interface IVBDataObjectFiles;
    interface Imci;
    dispinterface DmciEvents;

    typedef [uuid(3BD44960-C350-11CF-9D77-524153480000), helpstring("Control's run-time errors"), helpcontext(0x0003aa45)]
    enum {
        mciInvalidPropertyValue = 380,
        mciGetNotSupported = 394,
        mciSetNotSupported = 383,
        mciInvalidProcedureCall = 5,
        mciInvalidObjectUse = 425,
        mciWrongClipboardFormat = 461,
        mciDataObjectLocked = 672,
        mciExpectedAnArgument = 673,
        mciRecursiveOleDrag = 674,
        mciFormatNotByteArray = 675,
        mciDataNotSetForFormat = 676,
        mciCantCreateButton = 30001,
        mciCantCreateTimer = 30002,
        mciUnsupportedFunction = 30004
    } ErrorConstants;

    typedef [uuid(C1A8AF36-1257-101B-8FB0-0020AF039CA3), helpstring("BorderStyle constants."), helpcontext(0x0003a981)]
    enum {
        mciNone = 0,
        mciFixedSingle = 1
    } BorderStyleConstants;

    typedef [uuid(C1A8AF37-1257-101B-8FB0-0020AF039CA3), helpstring("RecordMode constants."), helpcontext(0x0003a984)]
    enum {
        mciRecordInsert = 0,
        mciRecordOverwrite = 1


    } RecordModeConstants;

    typedef [uuid(C1A8AF38-1257-101B-8FB0-0020AF039CA3), helpstring("MousePointer constants."), helpcontext(0x0003a987)]
    enum {
        mciDefault = 0,
        mciArrow = 1,
        mciCross = 2,
        mciIBeam = 3,
        mciIcon = 4,
        mciSize = 5,
        mciSizeNESW = 6,
        mciSizeNS = 7,
        mciSizeNWSE = 8,
        mciSizeEW = 9,
        mciUpArrow = 10,
        mciHourglass = 11,
        mciNoDrop = 12,
        mciArrowHourglass = 13,
        mciArrowQuestion = 14,
        mciSizeAll = 15,
        mciCustom = 99
    } MousePointerConstants;

    typedef [uuid(C1A8AF39-1257-101B-8FB0-0020AF039CA3), helpstring("Mode constants."), helpcontext(0x0003a999)]
    enum {
        mciModeNotOpen = 524,
        mciModeStop = 525,
        mciModePlay = 526,
        mciModeRecord = 527,
        mciModeSeek = 528,
        mciModePause = 529,
        mciModeReady = 530
    } ModeConstants;

    typedef [uuid(C1A8AF40-1257-101B-8FB0-0020AF039CA3), helpstring("Notify constants."), helpcontext(0x0003a9a1)]
    enum {
        mciNotifySuccessful = 1,
        mciNotifySuperseded = 2,
        mciAborted = 4,
        mciFailure = 8
    } NotifyConstants;

    typedef [uuid(C1A8AF41-1257-101B-8FB0-0020AF039CA3), helpstring("Orientation constants."), helpcontext(0x0003a9a6)]
    enum {
        mciOrientHorz = 0,
        mciOrientVert = 1
    } OrientationConstants;

    typedef [uuid(C1A8AF42-1257-101B-8FB0-0020AF039CA3), helpstring("Constants for TimeFormat Property"), helpcontext(0x0003a9a9)]
    enum {
        mciFormatMilliseconds = 0,
        mciFormatHms = 1,
        mciFormatMsf = 2,
        mciFormatFrames = 3,


        mciFormatSmpte24 = 4,
        mciFormatSmpte25 = 5,
        mciFormatSmpte30 = 6,
        mciFormatSmpte30Drop = 7,
        mciFormatBytes = 8,
        mciFormatSamples = 9,
        mciFormatTmsf = 10
    } FormatConstants;

    [
      odl,
      uuid(2334D2B1-713E-11CF-8AE5-00AA00C00905),
      hidden,
      dual,
      nonextensible,
      oleautomation
    ]
    interface IVBDataObject : IDispatch {
        [id(0x00000001), helpstring("Clears all data and formats in a DataObject object."), helpcontext(0x0003aa38)]
        HRESULT Clear();
        [id(0x00000002), helpstring("Retrieves data of a specified format from a DataObject object."), helpcontext(0x0003aa39)]
        HRESULT GetData(
                        [in] short sFormat,
                        [out, retval] VARIANT* pvData);
        [id(0x00000003), helpstring("Determines if a specified clipboard format is supported by the DataObject object."), helpcontext(0x0003aa3a)]
        HRESULT GetFormat(
                        [in] short sFormat,
                        [out, retval] VARIANT_BOOL* pbFormatSupported);
        [id(0x00000004), helpstring("Adds a supported format and possibly its data to a DataObject object."), helpcontext(0x0003aa3b)]
        HRESULT SetData(
                        [in, optional] VARIANT vValue,
                        [in, optional] VARIANT vFormat);
        [id(0x00000005), propget, helpstring("A collection of filenames used by the vbCFFiles format."), helpcontext(0x0003aa3c)]
        HRESULT Files([out, retval] IVBDataObjectFiles** pFiles);
    };

    [
      uuid(2334D2B2-713E-11CF-8AE5-00AA00C00905),
      noncreatable


    ]
    coclass DataObject {
        [default] interface IVBDataObject;
    };

    [
      odl,
      uuid(2334D2B3-713E-11CF-8AE5-00AA00C00905),
      hidden,
      dual,
      nonextensible,
      oleautomation
    ]
... ...


[解决办法]
Control Name: Microsoft Multimedia Control 6.0 (SP3)
Version: 1.1
Status: Registered
ProgID: MCI.MMControl.1
CLSID: {C1A8AF25-1257-101B-8FB0-0020AF039CA3}
TypeLib: {C1A8AF28-1257-101B-8FB0-0020AF039CA3}
File Location: C:/WINNT/system32/Mci32.ocx
File Size: 200224 Bytes
Created: 10/10/06 08:11:18
Modified: 03/09/04
Accessed: 11/21/06

热点排行