PIAMMultiMedianStream = ^IAMMultiMediaStream;
PPIAMMultiMedianStream = ^PIAMMultiMediaStream;
IAMMultiMediaStream = record
.....
end;var
pAMStream: PIAMMultiMediaStream;
begin
if(CoCreateInstance( CLSID_AMMultiMediaStram,nil,CLSCTX_INPROC_SERVER,
PPIAMMultiMedianStream(pAMSTream^))end;
PPIAMMultiMedianStream = ^PIAMMultiMediaStream;
IAMMultiMediaStream = record
.....
end;var
pAMStream: PIAMMultiMediaStream;
begin
if(CoCreateInstance( CLSID_AMMultiMediaStram,nil,CLSCTX_INPROC_SERVER,
PPIAMMultiMedianStream(pAMSTream^))end;
dwClsContext: Longint; const iid: TIID; out pv): HResult; stdcall;
------------
var K:IAMMultiMediaStream;
CoCreateInstance(CLSID_AMMultiMediaStream,nil,CLSCTX_INPROC_SERVER,IID_IAMMultiMediaStream,K);
上面的写法是对的。但是我估计,还是没法运行(就不知你有没有这个接口的定义的头文件)
如果有这些头文件,就可以直接执行,如果没有,你要自己写这些定义。好像比较烦!
IAMMultiMediaStream CLSID_AMMultiMediaStream IID_IAMMultiMediaStream
你得有他们的定义,上面才能运行!
begin
OleCheck(CoCreateInstance(ClassID, nil, CLSCTX_INPROC_SERVER or
CLSCTX_LOCAL_SERVER, IUnknown, Result));
end;
这试我取自delphi源代码的一段实例,它的result也是一个接口类型。
所以用一个正确的接口去接它,就可以了。
如果出错,那试你前面那些定义的事!
Obj: IUnknown;
begin
if(CoCreateInstance( CLSID_AMMultiMediaStram,nil,CLSCTX_INPROC_SERVER, Obj)
Result := Obj as IAMMultiMediaStream;
end;