Open CD forklaring!

Tags:    delphi

Der er efterhånden en del tråde med, hvordan man nu engang åbner CD-drevet, men der er aldrig nogen, der forklarer, hvad koden betyder!

Er der ikke en, der vil forklarer, hvad nedenstående kode betyder? altså linje for linje!



_______________________________________________
// The OpenCD function
// use like: OpenCD ('DRIVE') (F.eks. OpenCD('E'))

function OpenCD(Drive : Char) : Boolean;
Var
Res : MciError;
OpenParm: TMCI_Open_Parms;
Flags : DWord;
S : String;
DeviceID : Word;
begin
Result:=false;
S:=Drive+':';
Flags:=mci_Open_Type or mci_Open_Element;
With OpenParm do begin
dwCallback := 0;
lpstrDeviceType := 'CDAudio';
lpstrElementName := PChar(S);
end;
Res := mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm));
IF Res<>0 Then exit;
DeviceID:=OpenParm.wDeviceID;
try
Res:=mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_OPEN, 0);
IF Res=0 Then exit;
Result:=True;
finally
mciSendCommand(DeviceID, mci_Close, Flags, Longint(@OpenParm));
end;
end;

// The CloseCD function.
// Use like: CloseCD ('Drive') (F.eks. OpenCD('E'))

function CloseCD(Drive : Char) : Boolean;
Var
Res : MciError;
OpenParm: TMCI_Open_Parms;
Flags : DWord;
S : String;
DeviceID : Word;
begin
Result:=false;
S:=Drive+':';
Flags:=mci_Open_Type or mci_Open_Element;
With OpenParm do begin
dwCallback := 0;
lpstrDeviceType := 'CDAudio';
lpstrElementName := PChar(S);
end;
Res := mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm));
IF Res<>0 Then exit;
DeviceID:=OpenParm.wDeviceID;
try
Res:=mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_CLOSED, 0);
IF Res=0 Then exit;
Result:=True;
finally
mciSendCommand(DeviceID, mci_Close, Flags, Longint(@OpenParm));
end;
end;

_______________________________________________





7 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 2 karma
Sorter efter stemmer Sorter efter dato
undeclared identifier 'mciSendString'


Tilføj MMSystem til din Uses-liste

Windows er verdens beste trojan!



Hvis du kiggede i Win32 hjælpen ville du jo opdage at der rent faktisk står hvorfor han skal skrive det...

MCIERROR mciSendString(

LPCTSTR lpszCommand,
LPTSTR lpszReturnString, // nil fordi den ikke skal returnere noget
UINT cchReturn, // 0 fordi at det er størrelsen til bufferen til retuneringen
HANDLE hwndCallback // 0 fordi den ikke skal returnere noget til noget vindue
);

PS: Win32 hjælpen er forklaret i C++, så hvis du kun kender Object Pascal har du kun 50% forståelse, men håber du kan se hvad det betyder...
_______________________________________
-----------------------{ nife}------------------------_______________________________________

[Redigeret d. 04/04-04 01:42:57 af Nicolai Lyster Fersner]



Det ser ud til at være en rimelig lang kode for en forholdvis simpel ting. Hvis der er nogen der skal have åbnet cd drevet har jeg en meget nemere kode!

Åbner standard cd-drevet
Fold kodeboks ind/udKode 


Lukker standard cd-drevet
Fold kodeboks ind/udKode 


Åbn et bestemt drev. Udskift "G" med drevet bogstav
Fold kodeboks ind/udKode 


Lukker et bestemt drev
Fold kodeboks ind/udKode 




Windows er verdens beste trojan!



Jeg fik ikke rigtig svar på spørgsmålet.. Jeg ville bare have linjerne forklaret f.eks. hvad -----Res := mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm)); ----- betyder!
_________________________________________________

Når jeg prøver at indtaste

mciSendString('Set cdaudio door open wait', nil, 0, 0);

i en button-procedure siger

undeclared identifier 'mciSendString'

?? hjælp?!



Så nu virker det! Men vil du ikke forklare koden?



F.eks. Hvorfor skal der stå : nil, 0, 0 ...??



Hvis du kiggede i Win32 hjælpen ville du jo opdage at der rent faktisk står hvorfor han skal skrive det...

MCIERROR mciSendString(

LPCTSTR lpszCommand,
LPTSTR lpszReturnString, // nil fordi den ikke skal returnere noget
UINT cchReturn, // 0 fordi at det er størrelsen til bufferen til retuneringen
HANDLE hwndCallback // 0 fordi den ikke skal returnere noget til noget vindue
);

PS: Win32 hjælpen er forklaret i C++, så hvis du kun kender Object Pascal har du kun 50% forståelse, men håber du kan se hvad det betyder...
_______________________________________
-----------------------{ nife}------------------------_______________________________________

[Redigeret d. 04/04-04 01:42:57 af Nicolai Lyster Fersner]


Tak! Det hjalp lidt på det.. Jeg lukker denne tråd nu og uddeler point..




t