Главная страница
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.026 c
14-61774
AngeL B.
2002-11-27 17:10
2002.12.19
сколько может стоить программа?


3-61441
Arkady
2002-11-27 13:08
2002.12.19
Соединение с InterBase


6-61742
DED LOGOPED
2002-10-22 20:21
2002.12.19
Помогит с сокетами, как увеличить скорость обращения?


1-61628
z27
2002-12-06 17:24
2002.12.19
Квадратный корень


3-61443
Анатолий
2002-11-29 15:09
2002.12.19
Ограничения полей в IB