Solved

address cd-rom driver in C++

Posted on 1999-01-06
19
185 Views
Last Modified: 2013-12-03
I want to know how I can address the cd-rom drive using it's windows driver in C++
For example I want to open the cd-rom player and close it after a certain delay.
Does anyone know where to get documentation of it.
0
Comment
Question by:TheMaster
  • 11
  • 8
19 Comments
 
LVL 11

Expert Comment

by:alexo
ID: 1418159
Check the mciSendCommand() function with the MCI_SET parameter.
0
 
LVL 11

Expert Comment

by:alexo
ID: 1418160
Or mciSendString() command.
0
 

Author Comment

by:TheMaster
ID: 1418161
what header file do I need for it?
0
Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

 
LVL 11

Expert Comment

by:alexo
ID: 1418162
#include <mmsystem.h>

And link with winmm.lib
0
 

Author Comment

by:TheMaster
ID: 1418163
what header file do I need for it?
0
 

Author Comment

by:TheMaster
ID: 1418164
Don't you want the points? because you just gave some comment.
0
 
LVL 11

Accepted Solution

by:
alexo earned 500 total points
ID: 1418165
>> Don't you want the points? because you just gave some comment.
I wasn't sure that the answer I gave is really what you need so I refrained from locking the question.  I assumed (obviously correctly) that you will tell me if my answer is helpful.  I'm locking it now.
0
 

Author Comment

by:TheMaster
ID: 1418166
What arguments do I have to give with the function?
0
 
LVL 11

Expert Comment

by:alexo
ID: 1418167
To open the door:
  mciSendString("set cdaudio door open wait", NULL, 0, NULL);

To close the door:
  mciSendString("set cdaudio door closed wait", NULL, 0, NULL);

0
 

Author Comment

by:TheMaster
ID: 1418168
That might work, do you know where I can see how those options work, some documentation on mmsystem.h.
Because I've checked the help files at home, but they didn't say anything about mmsystem.h
0
 
LVL 11

Expert Comment

by:alexo
ID: 1418169
Sorry, my mistake.  The command needs an output buffer so try this:

    #pragma warning(disable: 4201 4514)
    #pragma comment(lib, "winmm.lib")

    #define STRICT
    #define WIN32_LEAN_AND_MEAN
    #include <windows.h>
    #include <mmsystem.h>

    void main()
    {
        char buff[128];
        mciSendString("set cdaudio door open wait", buff, sizeof buff, NULL);
    }

0
 
LVL 11

Expert Comment

by:alexo
ID: 1418170
>> documentation on mmsystem.h
What compiler do you use?
0
 
LVL 11

Expert Comment

by:alexo
ID: 1418171
For online info, go to:
http://premium.microsoft.com/isapi/devonly/prodinfo/msdnprod/msdnlib.idc?theURL=/msdn/library/sdkdoc/multimed/mci_7vvt.htm

(The first access of MSDN-online will require a one-time registration process)

0
 

Author Comment

by:TheMaster
ID: 1418172
I'm using Borland c++ 5 and Borland c++ builder.
But I think i'll be using c++Builder for this.
0
 
LVL 11

Expert Comment

by:alexo
ID: 1418173
I don't have BC++ at home, I'll check its documentation at work (sunday).
Meanwhile you can check the online info.

OK?
0
 

Author Comment

by:TheMaster
ID: 1418174
I can open the cdrom door, but now I want to close it again.
Did you by the way find any docs?
0
 
LVL 11

Expert Comment

by:alexo
ID: 1418175
>> I can open the cdrom door, but now I want to close it again.
mciSendString("set cdaudio door closed wait", buff, sizeof buff, NULL);

>> Did you by the way find any docs?
Yes.  BC5.02 has a "Multimedia API Reference" help file.  Check the "MCI" topic and subtopics.

BTW, How about grading the answer?
0
 

Author Comment

by:TheMaster
ID: 1418176
I've tried mciSendString("set cdaudio door closed wait", buff, sizeof buff, NULL);
But it won't close.
0
 
LVL 11

Expert Comment

by:alexo
ID: 1418177
Docs say it should work.  Don't have a CDROM to test it.  Checked the return value?
0

Featured Post

Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

This article shows how to make a Windows 7 gadget that extends its U/I with a flyout panel -- a window that pops out next to the gadget.  The example gadget shows several additional techniques:  How to automatically resize a gadget or flyout panel t…
zlib is a free compression library (a DLL) on which the popular gzip utility is built.  In this article, we'll see how to use the zlib functions to compress and decompress data in memory; that is, without needing to use a temporary file.  We'll be c…
This is Part 3 in a 3-part series on Experts Exchange to discuss error handling in VBA code written for Excel. Part 1 of this series discussed basic error handling code using VBA. http://www.experts-exchange.com/videos/1478/Excel-Error-Handlin…
Microsoft Active Directory, the widely used IT infrastructure, is known for its high risk of credential theft. The best way to test your Active Directory’s vulnerabilities to pass-the-ticket, pass-the-hash, privilege escalation, and malware attacks …

839 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question