jetzt bin ich inzwischen so weit... das müsste eigentlich funktionieren, nur bei test.queryinterface wird pNC nicht initialisiert... und die nächste zeile meldet dann eben eine zugriffsverletzung.
Delphi-Quellcode:
var
pNSECC: INETSharingEveryConnectionCollection;
pNC: INetConnection;
pEV: IEnumVariant;
pUnk: IUnknown;
v: OleVariant;
Fetched: Cardinal;
test: IUnknown;
pNCP: INetConnectionProps;
begin
NetSharingManager1.Create(nil);
NetSharingManager1.Connect;
pNSECC := NetSharingManager1.EnumEveryConnection;
pUnk := pNSECC._NewEnum as IEnumVariant;
punk.QueryInterface(stringtoguid('{00020404-0000-0000-C000-000000000046}'), pEV);
punk._Release;
VariantInit(v);
pEV.Next(1, v, Fetched);
while(fetched = 1) do
begin
if v = VT_UNKNOWN then
begin
test := v;
test.QueryInterface(stringtoguid('{C08956B6-1CD3-11D1-B1C5-00805FC1270E}'), pNC);
pNCP := NetSharingManager1.NetConnectionProps[pNC];
end;
pEV.Next(1, v, Fetched);
end;
end;
end;