Вопрос № 31718: Здравствуйте.
Я так понимаю, что об объявлений API функций в Borland C++Builder 6 нужно много рассказывать. Но может быть вы хоть вкратце, расскажете, как это делается, где это пишется (в кавычках, на самом верху или ещё где).
И ещё, помогите...
Вопрос № 31.718
Здравствуйте.
Я так понимаю, что об объявлений API функций в Borland C++Builder 6 нужно много рассказывать. Но может быть вы хоть вкратце, расскажете, как это делается, где это пишется (в кавычках, на самом верху или ещё где).
И ещё, помогите прогу написать для открывания CD-ROM с объявлением API функции.
Заранее благодарю.
Отвечает: PROD
Здравствуйте, Неизвестнов Том!
ниже статья по работе с сидюками. удачи
Как программно управлять CD-ROM'ом?
Автор: trainer
Исходная ссылка: - - -
Для начала определим вспомогательные переменные и функции, которые облегчат передачу команд:
#include <mmsystem.h>
#include <stdio.h>
#pragma comment(lib,"winmm.lib")
/* Буфер, в котором будем создавать команды */
char CdCommandBuffer[256];
/* Создание команды без указания имени CD-ROM'а */
char * CreateCdCommand(char * pBuffer, char * pCommand, char * pCmdFlags, char * pFlags) {
sprintf(pBuffer,"%s cdaudio %s %s",pCommand,pCmdFlags,pFlags);
return pBuffer;
}
/* Создание команды с указанием имени CD-ROM'а */
char * CreateCdCommandEx(char * pBuffer, char DriveLetter, char * pCommand, char * pCmdFlags, char * pFlags) {
sprintf(pBuffer,"%s cdaudio!%c: %s %s",pCommand,DriveLetter,pCmdFlags,pFlags);
return pBuffer;
}
Теперь, используя вспомогательные функции и переменные, отдавать команды управления CD-ROM'ом не просто, а очень просто.
Открыть CD-ROM, ожидая выполнения этой команды:
mciSendStringA(CreateCdCommand (CdCommandBuffer, CdCmdSet, CdCmdFlagOpen, CdFlagWait), NULL, 0, INVALID_HANDLE_VALUE);
Закрыть CD_ROM, ожидая выполнения этой команды:
mciSendStringA(CreateCdCommand (CdCommandBuffer, CdCmdSet, CdCmdFlagClose, CdFlagWait), NULL, 0, INVALID_HANDLE_VALUE);
Начать воспроизведение без ожидания выполнения:
mciSendStringA(CreateCdCommand( CdCommandBuffer, CdCmdPlay, CdCmdFlagEmpty, CdFlagEmpty), NULL, 0, INVALID_HANDLE_VALUE);
Остановить воспроизведение(стоп) без ожидания выполнения:
mciSendStringA(CreateCdCommand (CdCommandBuffer, CdCmdStop, CdCmdFlagEmpty, CdFlagEmpty), NULL, 0,INVALID_HANDLE_VALUE);
Получить номер текущей дорожки, ожидая выполнения этой команды:
mciSendStringA(CreateCdCommand (CdCommandBuffer, CdCmdStatus, CdCmdCurTrack, CdFlagWait), CdCommandBuffer, 255, INVALID_HANDLE_VALUE);
ShowMessage("Current track is "+AnsiString(CdCommandBuffer));
Получить текущее состояние, ожидая выполнения этой команды:
mciSendStringA(CreateCdCommand (CdCommandBuffer, CdCmdStatus, CdCmdCurMode, CdFlagWait), CdCommandBuffer, 255, INVALID_HANDLE_VALUE);
ShowMessage("Current mode is '"+AnsiString(CdCommandBuffer)+"'");
Если в системе присутствует несколько приводов CD, то для задания конкретного привода вместо функции CreateCdCommand следует использовать CreateCdCommandEx
Ответ отправил: PROD (статус: 2-ой класс)
Отправлен: 18.12.2005, 07:34
Отвечает: DIMANET
Здравствуйте, Неизвестнов Том!
Насколько я знаю CD открывается так:
Ответ отправил: DIMANET (статус: 1-ый класс)
Отправлен: 19.12.2005, 13:07
Отправить вопрос экспертам этой рассылки
Приложение (если необходимо):
* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.
Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!
Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.
Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.