Wanneer ik onderstaande code uitvoer als onderdeel van de oorspronkelijke vraag:
Code:
{ TForm1 }
uses
comobj;
procedure TForm1.Button1Click(Sender: TObject);
var
Shell : Variant;
OleFolder : OleVariant;
OleFolderItem, OleDetail: OleVariant;
WsFilePath : WideString;
WsFileName : WideString;
C, I: Integer;
begin
Shell := CreateOleObject('Shell.Application');
WsFilePath := WideString('C:\');
OleFolder := Shell.Namespace(WsFilePath); //('C:\');
WsFileName := 'bootTel.dat';
OleFolderItem := OleFolder.ParseName(WsFileName); //('bootTel.dat');
C := 288 ;
for I := -1 to C - 1 do
begin
//get file info using index ...
OleDetail := OleFolder.GetDetailsOf(OleFolderItem, I);
end;
end;
Wordt Shell in alle gevallen IDispatch($langgetal)
Voor OleFolder krijg ik alleen een niet-nil IDispatch bij een vaste tekst ('C:\'). Wanneer ik de WideString WsFilePath gebruik is het resultaat IDispatch(nil).
Hetzelfde voor OleFolderItem. Deze laatste wordt alleen zonder AV uitgevoerd wanneer OleFolder niet nil is
Ik doe waarschijnlijk iets fout, maar wat?
Bookmarks