Delphi寫網頁安全控制項 dll,ocx

2021-05-04 14:20:14 字數 2014 閱讀 7398

unit

unt_machine_webdll

;inte***ce

uses

comobj, activex, machine_tlb, stdvcl, sysutils, windows, device ;

const

g_supportedoptions = inte***cesafe_for_untrusted_caller or inte***cesafe_for_untrusted_data ;

type

tmachine = class(tautoobject, imachine, iobjectsafety)

private

fobjectsafetyflags: dword;

protected

...public

function getinte***cesafetyoptions(const iid: tiid; pdwsupportedoptions,

pdwenabledoptions: pdword): hresult; virtual; stdcall;

function setinte***cesafetyoptions(const iid: tiid; dwoptionsetmask,

dwenabledoptions: dword): hresult; virtual; stdcall;

end;

implementation

uses comserv;

/引數傳遞/

var ...

function tmachine.getinte***cesafetyoptions(const iid: tiid;

pdwsupportedoptions, pdwenabledoptions: pdword): hresult;

var unk: iunknown;

begin

if (pdwsupportedoptions = nil) or (pdwenabledoptions = nil) then

begin

result := e_pointer;

exit;

end;

result := queryinte***ce(iid, unk);

if result = s_ok then

begin

pdwsupportedoptions^ := inte***cesafe_for_untrusted_caller or

inte***cesafe_for_untrusted_data;

pdwenabledoptions^ := fobjectsafetyflags and

(inte***cesafe_for_untrusted_caller or inte***cesafe_for_untrusted_data);

endelse begin

pdwsupportedoptions^ := 0;

pdwenabledoptions^ := 0;

end;

end;

function tmachine.setinte***cesafetyoptions(const iid: tiid;

dwoptionsetmask, dwenabledoptions: dword): hresult;

var unk: iunknown;

begin

result := queryinte***ce(iid, unk);

if result <> s_ok then exit;

fobjectsafetyflags := dwenabledoptions and dwoptionsetmask;

end;

initialization

tautoobjectfactory.create(comserver, tmachine, class_machine,

cimultiinstance, tmapartment);

end.

C 呼叫Delphi寫的DLL

在c 中可以這樣呼叫 呼叫 這裡需要注意的是要外傳的pchar型別引數,在c 中對應使用stringbuilder,如果使用string沒有任何資訊傳出,如果使用ref string形式,則會出現記憶體錯誤。在c 中可以這樣呼叫 呼叫 經過測試 delphi中integer的引數使用c 中的int即...

DELPHI呼叫VC寫的DLL經驗

由於專案的需要,必須使用delphi呼叫vc編寫的dll,而我是編寫dll的。這裡總結幾個出現過的問題,以後再遇到就會用了。一 需要在每乙個輸出的函式開始新增上 afx manage state afxgetstaticmodulestate 這是用來實現dll資源的切換!讓我們來看看,這句 到底做...

Delphi動態呼叫C 寫的DLL

c dll 檔案,建議用最簡單的c 編輯工具。不會加入很多無關的dll檔案。本人用codeblocks mingw。不像 vs2010,dll編譯成功,呼叫的時候會提示缺其他dll。系統生成的main.h和main.cpp ifndef main h define main h include to...