Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2003.12.26;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "WinAPI";
Текущий архив: 2003.12.26;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.006 c
7-86580
crocodile_
2003-10-22 14:33
2003.12.26
WMI


14-86538
blackman
2003-12-03 09:45
2003.12.26
Эволюция программиста..


3-86277
dimm22
2003-12-03 08:37
2003.12.26
Посоветуйте толковую книгу по MSSQL, с описанием компонент


3-86287
rel_
2003-12-04 10:24
2003.12.26
помогите SQL запросом


1-86378
yong
2003-12-15 14:48
2003.12.26
Почтовая программа





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский