Can not find recordable drive

  • Thread starter Thread starter Justin_Fang
  • Start date Start date
J

Justin_Fang

Dear all,

My XPE has a customer shell, and MATSHITA DVD-RAM UJ-820S (a DVD RW).
I have a program to burn CD using ICDBurn Interface.
The DVD RW can read CD and DVD properly, but the program can not find
recordable drive...

I have a customer shell to relpace explore shell. So I disable explore
shell, and I also disable Internet Explore and HTML Rendering. Once I
add them back, it finds recordable drive but gets another error, and I
am checking new error now.

My question is why the ICDBurn is related to these componets? Any
solution?


Thanks,
Justin
 
Justin,

IIRC, ICDBurn is a part of the Shell Obj library. You will have to resolve all the Explorer shell dependencies first in your image
config before you disable it to add your own shell.
 
Dear KM,

You are right, ICDBurn is related to Explorer Shell.
But after I did what you say, once I change back to my own shell,
HasRecordableDrive can not find recordable drive always.
Any other clue?

Thanks,
Justin
 
Justin,

I was afraid of that but you just confirmed that.
CDBurn interface implementation, part of the shell32, relies on some registry entries being populated by the Explorer shell. For
the HasRecordableDrive function it is [HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CD Burning\Drives]

Your choices now are:
- Use other API that is not dependant on the Explorer, e.g. IMAPI. CDBurn, in its turn, uses IMAPI internally.
- Launch your shell app as a full screen app using Explorer shell. You can do lots of things on XPe to lock down the background
Explorer shell. See if this is acceptable. The worse part here would be the boot performance. Now you are going to launch Explorer
before your app.
- Try the following dirty workaround. Create an image with Explorer shell setup. Run the image through FBA and let Explorer to
populate the missing CD Burning reg.keys. Exit Explorer and launch your own app (or do that in the reversed order). See if CDBurn
interface functions are working for you now. If they are, you can disable/remove the Explorer from the runtime (not in TD, though!!)
and have your own app running as a shell if you replace the "Shell" string under [HKLM\SOFTWARE\Microsoft\Windows
NT\CurrentVersion\Winlogon] key. Please let us know here if this helps.
 
Dear KM,

I had tried one IMAPI sample and it works properly without Explorer
Shell.
I will try to implemnet it in our program.

Thanks,
Justin
 
Back
Top