Thema: PSafeArray

Einzelnen Beitrag anzeigen

Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.869 Beiträge
 
Delphi 12 Athens
 
#4

AW: PSafeArray

  Alt Gestern, 00:27
Vielleicht so?
Delphi-Quellcode:
uses
  ActiveX;

function CreateSafeArray(const AValue: string): PSafeArray;
var
  saBound: TSafeArrayBound;
  pData: PWideString;
begin
  saBound.lLbound := 0;
  saBound.cElements := 1;

  Result := SafeArrayCreate(VT_BSTR, 1, @saBound);
  if not Assigned(Result) then
    raise Exception.Create('SafeArray konnte nicht erstellt werden.');

  if SafeArrayAccessData(Result, Pointer(pData)) = S_OK then
    try
      pData^ := SysAllocString(PWideChar(AValue));
    finally
      SafeArrayUnaccessData(Result);
    end
  else
  begin
    SafeArrayDestroy(Result);
    raise Exception.Create('Fehler beim Setzen der SafeArray-Daten.');
  end;
end;

function DocSelectFiles(type_: SelectType; MenuIndex: Integer; out docIds: PSafeArray): HResult; stdcall;
begin
  try
    docIds := CreateSafeArray('Eine ID');
    Result := S_OK;
  except
    Result := E_FAIL;
  end;
end;
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat