Текущий архив: 2002.12.19;
Скачать: CL | DM;
Вниз
ShFileOperation - Shnamemapping Найти похожие ветки
← →
mikl2002 (2002-11-06 09:25) [0]Кто нибудь знает как извлечь данные
psznewpath из hNameMappings^ типа shnamemapping
после вызова функции ShFileOperation
← →
Opuhshii © (2002-11-06 09:58) [1]
typedef struct _SHFILEOPSTRUCT { // shfos
HWND hwnd;
UINT wFunc;
LPCSTR pFrom;
LPCSTR pTo;
FILEOP_FLAGS fFlags;
BOOL fAnyOperationsAborted;
LPVOID hNameMappings;
LPCSTR lpszProgressTitle;
} SHFILEOPSTRUCT, FAR *LPSHFILEOPSTRUCT;
Showmessage(Pchar(hNameMappings)) ;
← →
Opuhshii © (2002-11-06 10:09) [2]поспешишь. людей насмешишь,.. ну что же,. насмешим ещё разок,!
← →
Alex4444444444 (2002-11-06 10:13) [3]Is sobstvennogo opyta:
(1) hNameMappings, esli ne nil, ssylaetsya na structuru, v kotoroj pervye 4 byta = colichestvo elementov, a potom, array of _SHNAMEMAPPING.
(2) (na moj vzglyad, iz help"a eto ne ochevidno): perechislyayutsya ne vse skopirovannye/peredvinutye files, a tol"ko te, imena kotoryh automaticheski izmeneny systemoy (FOF_RENAMEONCOLLISION in Flags).
(3) Ne zabudte FOF_WANTMAPPINGHANDLE vo Flags
(4) Ne zabudte vyzvat" SHFreeNameMappings
typedef struct _SHNAMEMAPPING { // shnm
LPSTR pszOldPath; // address of old path name
LPSTR pszNewPath; // pointer to new path name
int cchOldPath; // number of characters in old path name
int cchNewPath; // number of characters in new path name
} SHNAMEMAPPING, FAR *LPSHNAMEMAPPING;
← →
mikl2002 (2002-11-06 10:23) [4]Я так и делал, вот код:
with OpStruc do begin
Wnd := Handle;
wFunc := FO_Copy;
pFrom := @frombuf;
pTo := @tobuf;
fFlags := FOF_NOCONFIRMATION and FOF_RENAMEONCOLLISION or FOF_WANTMAPPINGHANDLE ;
fAnyOperationsAborted := False;
hNameMappings := nil;
lpszProgressTitle := nil;
end;
ShFileOperation(OpStruc);
with shnamemapping(OpStruc.hNameMappings^) do
begin
fillchar(tobuf,sizeof(tobuf),0);
{psznewpath уже содерит полную чушь}
move(psznewpath^,tobuf,cchnewpath);
end;
← →
Alex4444444444 (2002-11-06 10:56) [5]Eshe raz: pervye 4 bytes soderzhat colichestvo elementov! Tak chto, v Delphi terminah, ona ssylaetsya na chto-to typa
record
Count: Integer;
Items: array[0..Something] of ^shnamemapping;
end;
(Sejchas ya uzhe ne pomnyu tochno, array of ^shnamemapping ili array of shnamemapping )
← →
mikl2002 (2002-11-06 12:31) [6]>Alex4444444444
Ок все работает
record
Count: Integer;
Items: array[0..Something] of ^shnamemapping;
end
Только я не пойму,что передавать SHFreeNameMappings
На SHFreeNameMappings(OpStruc.hNameMappings)ругается
Страницы: 1 вся ветка
Текущий архив: 2002.12.19;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.014 c