Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
Quellcode |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 |
// Datei: main.cpp // ////////////////////////////////////////////////////////////////////////////////// // Autor: Patrick Ullmann © Xarent Interactive & Scherfgen-Software // Erstellt: 29.01.04 // Änderungen: 29.01.04 (Patrick) Datei erstellt // ////////////////////////////////////////////////////////////////////////////////// // Beschreibung: Hauptdatei // I N C L U D E S ////////////////////////////////////////////////////////////////// // Standard Includes (ACHTUNG: Ohne *.h!!!) #include <string> // Betriebssystemabhängige includes #if defined (_WIN32) // Windows # include <windows.h> # include <mmsystem.h> # pragma comment(lib, "winmm.lib") #else if defined (_GCC) // Für Linux die includes #endif // F U N K T I O N E N ////////////////////////////////////////////////////////////// // ///////////////////////////////////////////////// // PUBLIC // // Funktion zum Öffnen eines CD-Rom Laufwerks. // // [in] drive: String vom Namen des CD Laufwerks. // // [ret] true wenn alles okay, false bei fehlern. // ///////////////////////////////////////////////// bool openCDDrive (const std::string &drive) { #if defined (_WIN32) return (::mciSendString("Set CDAudio Door Open\0", const_cast<char*>(drive.c_str()), static_cast<unsigned int>(drive.size()), NULL) ? true : false); #else if defined (_GCC) // HIER DEN CODE FÜR LINUX EINBINDEN! #endif } // ///////////////////////////////////////////////// // PUBLIC // // Funktion zum Schließen eines CD-Rom Laufwerks. // // [in] drive: String vom Namen des CD Laufwerks. // // [ret] true wenn alles okay, false bei fehlern. // ///////////////////////////////////////////////// bool closeCDDrive (const std::string &drive) { #if defined (_WIN32) return (::mciSendString("Set CDAudio Door Closed\0", const_cast<char*>(drive.c_str()), static_cast<unsigned int>(drive.size()), NULL) ? true : false); #else if defined (_GCC) // HIER DEN CODE FÜR LINUX EINBINDEN! #endif } // ///////////////////////////////////////////////// // PUBLIC // // Hauptfunktion // // [ret] Eine 0 ;-) // ///////////////////////////////////////////////// #if defined (_WIN32) // Ist es Windows? int __stdcall WinMain(HINSTANCE__ *Instance, HINSTANCE__ *prevInstance, char *cmdLine, int cmdShow) #else if defined (_GCC) // Ist es Linux? int main (int argc, char* argv[]) #endif { // Ist es Windows? #if defined (_WIN32) // Die Frage stellen if (::MessageBox (NULL, "Willst Du den ultimativen Kaffeehalter?", "", MB_DEFBUTTON1 | MB_ICONINFORMATION | MB_YESNO) == IDYES) { // Bei "JA" öffne laufwerk "D:\". openCDDrive ("d:"); // Lustige MessageBox ausgeben. ::MessageBox (NULL, "Besser geht's nimmer! Muhahaha...", "", MB_DEFBUTTON1 | MB_OK); // Schließe laufwerk "D:\". closeCDDrive ("d:"); } // Ist es Linux? #else if defined (_GCC) // HIER DEN CODE FÜR LINUX EINBINDEN! #endif // Und die 0 nicht vergessen ;-) return 0; } |
Quellcode |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
void CSomeClass::ThrowOutD() { CD_OpenCloseDrive(TRUE,'D'); } void CSomeClass::CD_OpenCloseDrive(BOOL bOpenDrive,TCHAR cDrive) { /* bOpenDrive is a boolean value containing whether the drive should be opened or closed. cDrive is a TCHAR which contains the specific drive letter to be used. If no letter is passed, then the first CD drive in the MCI device list will be used. The function opens or closes the appropriate CD drive based on its arguments */ MCI_OPEN_PARMS op; MCI_STATUS_PARMS st; DWORD flags; TCHAR szDriveName[4]; strcpy(szDriveName, "X:"); ::ZeroMemory(&op, sizeof(MCI_OPEN_PARMS)); op.lpstrDeviceType = (LPCSTR) MCI_DEVTYPE_CD_AUDIO; if (cDrive > 1) { szDriveName[0] = cDrive; op.lpstrElementName = szDriveName; // set the flags for the device type flags = MCI_OPEN_TYPE | MCI_OPEN_TYPE_ID | MCI_OPEN_ELEMENT | MCI_OPEN_SHAREABLE; } else { // set the flags for the device type flags = MCI_OPEN_TYPE | MCI_OPEN_TYPE_ID | MCI_OPEN_SHAREABLE; } if (!mciSendCommand(0,MCI_OPEN,flags,(unsigned long)&op)) { st.dwItem = MCI_STATUS_READY; if(bOpenDrive) // decides whether to open or close { // open drive mciSendCommand(op.wDeviceID,MCI_SET,MCI_SET_DOOR_OPEN,0); } else { // close drive mciSendCommand(op.wDeviceID,MCI_SET,MCI_SET_DOOR_CLOSED,0); } // release access to the device mciSendCommand(op.wDeviceID,MCI_CLOSE,MCI_WAIT,0); } } |
Werbeanzeige