Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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
14-61788
Schummi
2002-11-27 08:04
2002.12.19
Такое Вам и не снилось!


3-61396
Шурик Ш
2002-12-03 10:38
2002.12.19
Перенос записей


14-61808
AL2002
2002-11-25 13:18
2002.12.19
Королевство дельфи. (не успел добавить). Теперь можно и стереть.


1-61624
Hamlet
2002-12-06 15:41
2002.12.19
быстрый поиск в некотором массиве


14-61792
DeepProg
2002-11-18 21:09
2002.12.19
Модем - входящий звонок