

Read CDEVents.doc and the source code headers for a recently description!

{*****************************************************************************}
{ [TCDEVENTS]                                                                 }
{   Special Units = DBT.Pas                                                   }
{   Version = 1.41                                                            }
{ [SOURCE]                                                                    }
{   Copyright  1998 by Tom Deprez                                            }
{   (Just to prevent to get multiple components, which all have great         }
{    things but would be a GREAT component with a lot (all) of GREAT things   }
{    That way everybody can benefit of such a GREAT component)                }
{ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ }
{ [COMPONENT]                                                                 }
{ [properties]                                                                }
{   AutoRun : Disable/enable CD autorun feature                               }
{   ID : contains handle of CD-player                                         }
{   Enabled : Disable/enable CD notification                                  }
{   SerialNumber : resturns serial number of CD                               }
{   UPCNumber : returns UPC number of CD                                      }
{   ProductInfo : returns product info of CD                                  }
{   Drives : contains all CD drives on personal computer                      }
{                                                                             }
{ [events]                                                                    }
{   AfterArrival : Fires when new CD is inserted by user                      }
{   AfterRemove  : Fires when CD is removed by user                           }
{                                                                             }
{ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ }
{ [AUTHOR]                                                                    }
{   Author name   = ZifNab (Tom Deprez)                                       }
{   Author e-mail = tom.deprez@uz.kuleuven.ac.be                              }
{ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ }
{ [HISTORY]                                                                   }
{   18/01/1998 : first release                                                }
{   04/02/1998 : changed the order of checking the message (WMDeviceChange)   }
{   21/02/1998 : added disable/enable CD autorun feature                      }
{                added eject/close CD-door                                    }
{   12/03/1998 : fixed a bug (Access violation) 10x to Jaco Vis               }
{   14/03/1998 : changed the new procedures (Open -& CloseDevice) to an       }
{                an appropriate way. 10x for pointing me out, Rav!            }
{   15/05/1998 : Added functions IsAudioCD & GetVolumeName & GetCDInfo        }
{   10/06/1998 : NoDriveTypeAutoRun error on some pc fixed by Matjaz          }
{                Enabled property proposed and implemented by Bartosz Antosik }
{   20/06/1998 : Changed the GetCDInfo to three properties                    }
{   25/10/1998 : Changed GetVolumeName return string (Yoko Maroshi)           }
{                Added procedure GetAllCDDrives, property Drives              }
{                CDevents uses now DBT.pas file (total translation of DBT.H)  }
{   11/11/1998 : Added procedures GetXCDDriveLetter, GetFirstCDDriveLetter    }
{                                                                             }
{*****************************************************************************}

{*****************************************************************************}
{  [COMMENTS]                                                                 }
{   I very often visit the Delphi page of the www.Experts-Exchange.com site   }
{   It's a place where you can ask or answer questions. One day somebody      }
{   needed to know when a CD is inserted in or ejected out of the CD-Rom      }
{   drive. I found it an interesting question, especially because I could     }
{   not find some 'delphi' source for this problem.                           }
{   I started to search for a solution.                                       }
{   Well, that was the beginning of this component. Where it ends?            }
{   That I don't know, it really depends on the reaction of you! If I get     }
{   some reaction, I'll futher improve it, otherwise it sticks with this.     }
{   Too bad, because I think it can become a great tool.                      }
{                                                                             }
{  [IMPORTANT]                                                                }
{    Made some improvements? : please let me know of, so I can update it      }
{    Need some improvements? : please, just ask and I'll try to make it       }
{    Have you got some ideas? : please, send them to me                       }
{    You use this component? : please, send me an e-mail, why you use this    }
{                              component. An E-mail isn't asked too much.     }
{                              Isn't it? At least let me know of the fact     }
{                              you're using it. It makes me very HAPPY!       }
{  [THANKS]                                                                   }
{    Matvey who brought the first idea to this component                      }
{    Look at history !!!                                                      }
{    Perhaps YOU?                                                             }
{                                                                             }
{ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ }
{  [COPYRIGHT]                                                                }
{    This file is distributed as freeware and without warranties of any       }
{    kind. You can use it in your own applications at your own risk.          }
{                                                                             }
{  [NOTE]                                                                     }
{    It's freeware, but don't hesitate to send me some money if you've        }
{    become rich with the help of this component ;-)                          }
{    It's freeware, but don't hesitate to send me the program or the          }
{    component, where you use this component in. I would be ever gratefull    }
{    to you, thanks.                                                          }
{*****************************************************************************}