1. Usa
GetDriveType para comprobar si la unidad que sea es CD, HD etc....
Private Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long
Private Sub Form_Load()
Select Case GetDriveType("E:\")
Case 2
Me.Print "Extraíble"
Case 3
Me.Print "Disco Duro"
Case Is = 4
Me.Print "Unidad de Red"
Case Is = 5
Me.Print "Cd-Rom"
Case Is = 6
Me.Print "Ram disk"
Case Else
Me.Print "No Reconocido"
End Select
End Sub
En tu caso, que buscas CD-Rom tendrías que esperar que la función te devuelva el entero "5"
2. Una vez hayas dado con la unidad de CD utiliza
ShellExecute para explorar el contenido
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Const SW_SHOWNORMAL = 1
Private Sub Form_Load()
ShellExecute Me.hwnd, vbNullString, "http://www.google.es", "open", "C:\", SW_SHOWNORMAL
End Sub
Como ves en el code, tienes que pasarle a la función un parámetro (lpOperation). En el ejemplo pone "open", tu, como quieres explorar, tendrías que poner "explore".
Un saludo!