刻录光盘的源代码研究

问了,找了很久都没有办法解决的刻录问题,几经周折后,取了一个可行的办法。介绍给有兴趣的人。  
   
  如果你手上有   DirectCD   5.0   以上版本,那么就能使用   SHFileOperation   函数直接向CD-R   或者CD-RW   写文件。  
   
  函数声明如下:  
  Private   Type   SHFILEOPSTRUCT  
                  hwnd   As   Long  
                  wFunc   As   Long  
                  pFrom   As   String  
                  pTo   As   String  
                  fFlags   As   Integer  
                  fAnyOperationsAborted   As   Boolean  
                  hNameMappings   As   Long  
                  lpszProgressTitle   As   String  
  End   Type  
   
  Const   FO_COPY   =   &H2  
  Const   FOF_ALLOWUNDO   =   &H40  
   
  Private   Declare   Function   SHFileOperation   Lib   "shell32.dll"   Alias   "SHFileOperationA"   (lpFileOp   As   SHFILEOPSTRUCT)   As   Long  
   
  对于一张新的刻录盘,必需先调用   DirectCD.exe   ,使用它的“格式化”或者“标记光盘为可写”的功能,总的目的就是让刻录盘可写,然后使用   SHFileOperation   函数直接向光盘写文件就行。  
   
  用DirectCD.exe   格式化后的刻录盘同时可以使用GetVolumeInformation和GetDiskFreeSpaceEx函数获取光盘信息,函数声明如下:  
   
  Private   Declare   Function   GetVolumeInformation   Lib   "kernel32"   Alias   "GetVolumeInformationA"   (ByVal   lpRootPathName   As   String,   ByVal   lpVolumeNameBuffer   As   String,   ByVal   nVolumeNameSize   As   Long,   lpVolumeSerialNumber   As   Long,   lpMaximumComponentLength   As   Long,   lpFileSystemFlags   As   Long,   ByVal   lpFileSystemNameBuffer   As   String,   ByVal   nFileSystemNameSize   As   Long)   As   Long  
   
  Private   Declare   Function   GetDiskFreeSpaceEx   Lib   "kernel32"   Alias   "GetDiskFreeSpaceExA"   (ByVal   lpRootPathName   As   String,   lpFreeBytesAvailableToCaller   As   Any,   lpTotalNumberOfBytes   As   Any,   lpTotalNumberOfFreeBytes   As   Any)   As   Long  
   
  希望对需要写刻录功能的人能有所帮助

你可能感兴趣的:(string,function,integer,shell)