[Delphi] 调用ocx

function RegisterDllServer(FileName: string): boolean;
var  
  nDllAddr: integer;  
  bstr: string;  
  ProcAddr: Pointer;  
  str: PAnsiChar;  
begin  
  Result := False;  
  if not FileExists(FileName) then  
    exit;  
      
  nDllAddr:=LoadLibrary(PChar(FileName));  
  if nDllAddr <> 0 then  
  begin  
    bstr:='DllRegisterServer'+chr(0);  
      
    str := PAnsiChar(AnsiString(bstr));  
    ProcAddr := GetProcAddress(nDllAddr,str);  
    if ProcAddr<>nil then  
    begin  
      CallWindowProc(ProcAddr,nDllAddr,0,0,0);   
      Result := True;  
    end;  
    FreeLibrary(nDllAddr);    
  end;                       
end;  

procedure Tfrmexceltoocx.Button1Click(Sender: TObject);
var
  ocx: objclass;
begin
  try
    CoInitialize(nil);
    ocx := CreateOleObject('aaa.objclass') as objclass;
  except
    RegisterDllServer('D:\Documents\aaa.ocx');
    Exit;
  end;
end;

记录一下,脑子记不住

posted @ 2017-06-12 16:13  我爱我家喵喵  阅读(1303)  评论(0)    收藏  举报