瀏覽代碼

* Patch from Ocean, Mantis #25798

git-svn-id: trunk@26906 -
marco 11 年之前
父節點
當前提交
17330b94e3
共有 1 個文件被更改,包括 13 次插入0 次删除
  1. 13 0
      packages/winunits-base/src/comobj.pp

+ 13 - 0
packages/winunits-base/src/comobj.pp

@@ -288,6 +288,8 @@ unit comobj;
     function ProgIDToClassID(const id : string) : TGUID;
     function ClassIDToProgID(const classID: TGUID): string;
 
+    function StringToLPOLESTR(const Source: string): POLEStr;
+
     procedure DispatchInvoke(const Dispatch: IDispatch; CallDesc: PCallDesc;
        DispIDs: PDispIDList; Params: Pointer; Result: PVariant);
     procedure DispatchInvokeError(Status: HRESULT; const ExceptInfo: TExcepInfo);
@@ -573,6 +575,17 @@ implementation
      end;
 
 
+   function StringToLPOLESTR(const Source: string): POLEStr;
+     var
+       Src: WideString;
+     begin
+       Src := WideString(Source);
+       Result := CoTaskMemAlloc((Length(Src)+1) * SizeOf(WideChar));
+       if Result <> nil then
+         Move(PWideChar(Src)^, Result^, (Length(Src)+1) * SizeOf(WideChar));
+     end;
+
+
    procedure SafeCallErrorHandler(err : HResult;addr : pointer);
 {$ifndef wince}
      var