Thema: Wlan connect

Einzelnen Beitrag anzeigen

Benutzerbild von TERWI
TERWI

Registriert seit: 29. Mär 2008
Ort: D-49626
381 Beiträge
 
Delphi 11 Alexandria
 
#18

AW: Wlan connect

  Alt 29. Jan 2017, 14:32
Ein Profil-XML auslesen wollte auch erst nicht klappen.
Hier war das Problem, das der Param für den zurückzugebenden String
A) grundsätzlich ein WideString
B) und dann nochmals konvertiert als PWChar (wie bei div. Aufrufen aus der WLAN-API !)
übergeben werden muss. Also so in etwa:
Code:
function TMain.WLAN_GetProfileInfo() : HRESULT;
var
  Name   : WideString;
  pXML   : pwidechar;
  Flags  : DWORD;
  GA     : DWORD;
begin
  if NOT Assigned(FpIFDATA) then exit;
  if NOT Assigned(FpNWDATA) then exit;
  if NOT FIsClient then exit;
  Name  := WideString(FpNWDATA.actProfile);
  pXML  := NIL;
  Flags := 0;
  GA    := 0;
  // -------------------------------------------------------------
  // ATTENTION: var to pstrProfileXml MUST be @pXML - NOT pXML !!!
  // -------------------------------------------------------------
  result := WlanGetProfile(FhClient,     // hClientHandle [in]
                           @FGuid,       // pInterfaceGuid [in]
                           PWChar(Name),
                           NIL,          // pReserved [in]
                           @pXML,        // pstrProfileXml [out]
                           @Flags,       // pdwFlags [in, out, optional]
                           @GA);         // pdwGrantedAccess [out, optional]
  if result <> ERROR_SUCCESS then
    Memo.Lines.Add('GETPROFILEINFO - FAILED: ' + IntToStr(result) + ' - ' + GetErrString(result))
  else
  begin
    Memo.Lines.Add('GETPROFILEINFO - XML: ' + pXML);
  end;
  if Assigned(pXML) then WlanFreeMemory(pXML);
end;
Auch hier wieder:
FhClient und FhClient sind globale var. Dito FpIFDATA (Interface) & FpNWDATA( Network), worin Daten aus dem aktuell connecteten Interface/Adapter, bzw. ausgewähltem (verfügbarem) Netzwerk gehalten werden.
Die Flags und GA sind für XP-kompatiblen ausgelegt.
  Mit Zitat antworten Zitat