Zitat von
rai:
Ich hatte leider kurzfristig noch nicht die Möglichkeit unter
Win9x/ME zu testen aber XP funktioniert wunderbar.
Unter
Win9x funktioniert es nicht.
Vielleicht helfen Dir die Prototypen weiter:
Delphi-Quellcode:
function NetShareAdd9x(pszServer: PAnsiChar; sLevel: Smallint; const pbBuffer;
cbBuffer: Word): NET_API_STATUS; stdcall;
external 'svrapi.dll' name 'NetShareAdd';
function NetShareAddNt(servername: LPWSTR; level: DWORD; const buf;
parm_err: LPDWORD): NET_API_STATUS; stdcall;
external 'netapi32.dll' name 'NetShareAdd';
Zudem steht in den Strukturen ziemlicher Schrott, die 9x-Version sollte etwa so aussehen:
Delphi-Quellcode:
VER_PLATFORM_WIN32_WINDOWS:
begin
ZeroMemory(@share50, SizeOf(share50));
StrLCopy(share50.shi50_netname, PChar(netname),
SizeOf(share50.shi50_netname));
share50.shi50_type := STYPE_DISKTREE;
if hidden then
share50.shi50_flags := SHI50F_SYSTEM
else
share50.shi50_flags := SHI50F_FULL;
StrLCopy(share50.shi50_rw_password, PChar(password),
SizeOf(share50.shi50_rw_password));
StrUpper(share50.shi50_rw_password);
StrCopy(share50.shi50_ro_password, share50.shi50_rw_password);
// *seufz*, wie wär's mit ne Variable?
share50.shi50_path := PChar(@((UpperCase(path))[1]));
NetShareAdd9x(nil, 50, share50, SizeOf(share50));
end;
Und ein Rückgabewert hätte Deiner Funktion auch nicht schaden können
ps: komisch dass damals in Spotlight niemand meinen kompletten Wrapper fürs Archiv vorgeschlagen hat... nu isses längst nicht mehr zu finden.