读书人

c++调用com组件有关问题关于CLSIDFrom

发布时间: 2013-03-25 15:43:04 作者: rapoo

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

读书人网 >C++

热点推荐