Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.12.26;
Скачать: CL | DM;

Вниз

Определение папки с файлами для записи компакт-диска   Найти похожие ветки 

 
Woolen   (2003-10-30 10:05) [0]

Определяю программно папку, в которой винда хранит файлы для прожига на компакт-диске:

Типы и переменные такие:
DLLVERSIONINFO = record
cbSize: DWORD;
dwMajorVersion: DWORD;
dwMinorVersion: DWORD;
dwBuildNumber: DWORD;
dwPlatformID: DWORD;
end;
TDllGetVersion = function(var DllVerInfo: DLLVERSIONINFO): HRESULT; stdcall;
CSIDL_CDBURN_AREA = $3b;

Код такой:
Result := "";
DllGetVersion := GetProcAddress(GetModuleHandle(shell32),"DllGetVersion");
if Assigned(DllGetVersion) then
begin
ZeroMemory(@DllVerInfo,SizeOf(DllVerInfo));
DllVerInfo.cbSize := SizeOf(DllVerInfo);
OleCheck(DllGetVersion(DllVerInfo));//Тут глюк
if DllVerInfo.dwMajorVersion >= 6 then
begin
PIDL := @ItemIDLst;
OleCheck(SHGetSpecialFolderLocation
(Application.MainForm.Handle,CSIDL_CDBURN_AREA,PIDL));
if SHGetPathFromIDList(PIDL,Buf) then
Result := Buf;
end;
end;

Как думаете что за глюк? EOleSysError с сообщением "Неыерное имя файла". Блин, какого файла? Что, вообще, происходит? Помогите, кто знает.


 
Woolen ©   (2003-10-30 15:05) [1]

Может я что-нибудь не так объявил?


 
Игорь Шевченко ©   (2003-10-30 15:54) [2]

@DllGetVersion := GetProcAddress(GetModuleHandle("shell32"),"DllGetVersion");


 
Woolen ©   (2003-10-30 18:43) [3]

Сомневаюсь, что в этом проблема, функция-то отрабатывает и даже возвращает результат, по которому уже создает исключение в OleCheck, а на NT 4, вообще, все отрабатывает правильно, потому что в ее shell32.dll нет функции DllGetVersion, а следовательно возвращается нулевой адрес и Assigned(DllGetVersion) не проходит, что свидетельствует о том, что такая запись компакт-дисков операционка (на своем уровне) не поддерживает и папки искомой - нет.



Страницы: 1 вся ветка

Текущий архив: 2003.12.26;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.02 c
4-86589
Mr.Ice
2003-10-30 17:16
2003.12.26
shellexecute


9-86237
elf_123
2003-06-06 15:37
2003.12.26
Тякстуры...


1-86386
olookin
2003-12-15 14:09
2003.12.26
Как не засорять память?


1-86418
timak
2003-12-14 08:08
2003.12.26
Как сделать QuickRepToBitmap?


3-86312
Сергей К.
2003-11-28 22:53
2003.12.26
Парадох под Windows XP SP1. BDE - 5.11. Необычное поведение