/*
   ----------------------------------------------------------------
   Filename.....: rmmshfolder.cc
   ClassName....: rmmShFolder
   Purpose......: Non-GUI object to get directory paths
                  for special folders.
   Programmer...: Rick Miller
   Date.........: September 06, 2006.
   Notes........: See Notes below.
   Written for..: VdB7 and newer.
   Rev. History.: 10/30/2006  -  added some constants.
   Dependencies.: {sys}\shfolder.dll
   Calls........: See x_InitializeExterns.
   Called by....: Any.
   Usage........: set procedure to rmmshfolder.cc additive
   Example......: See Example below.
   ----------------------------------------------------------------
   Notes:
   ----------------------------------------------------------------
      1) shfolder.dll is distributed with IE 5 and newer.
      2) The constants in the header were derived from shlobj.h.
         They were renamed to avoid conflicts.
      3) You may want to copy and paste the portion of the
            header from #ifndef to #endif into rmmshfolder.h.
         rmmshfolder.h can then be used with an #include
            where ever needed.
   ----------------------------------------------------------------
   Example:
   ----------------------------------------------------------------
      oRef  =  new rmmShFolder()
      ? oRef.getPath(RMMCSIDL_TEMP)

      oRef.release()
      oRef  := null
   ----------------------------------------------------------------
   Methods:
   ----------------------------------------------------------------
      getLongName(<char> directory or file)
                     return <char> longPathName.
      getPath(<int> CSIDL special folder)
                     return <char> directory longPathName format.
      getShortName(<char> directory or file)
                     return <char> shortPathName.
      release()      destroy object, close procedure.
   ----------------------------------------------------------------
   */