| 259 | } |
| 260 | |
| 261 | OSStatus ptrDataRefAddFileNameExtension( ComponentInstance dataRefHandler, const string &fileName ) |
| 262 | { |
| 263 | OSStatus osErr = noErr; |
| 264 | unsigned char myChar = 0; |
| 265 | Handle fileNameHandle = NULL; |
| 266 | |
| 267 | // create a handle with our file name string |
| 268 | // if we were passed an empty string, then we need to add this null string (a single 0 byte) to the handle |
| 269 | if( fileName.empty() ) |
| 270 | osErr = ::PtrToHand( &myChar, &fileNameHandle, sizeof(myChar) ); |
| 271 | else { |
| 272 | unique_ptr<char[]> tempStr( new char[fileName.size()+1] ); |
| 273 | memcpy( &tempStr.get()[1], &fileName[0], fileName.size() ); |
| 274 | tempStr.get()[0] = fileName.size(); |
| 275 | osErr = ::PtrToHand( &tempStr.get()[0], &fileNameHandle, tempStr.get()[0] + 1 ); |
| 276 | if( osErr != noErr ) goto bail; |
| 277 | } |
| 278 | if( osErr != noErr) goto bail; |
| 279 | |
| 280 | // set the data ref extension for the data ref handler |
| 281 | osErr = ::DataHSetDataRefExtension( dataRefHandler, fileNameHandle, kDataRefExtensionFileName ); |
| 282 | |
| 283 | bail: |
| 284 | if( fileNameHandle ) // no longer need this |
| 285 | ::DisposeHandle( fileNameHandle ); |
| 286 | |
| 287 | return osErr; |
| 288 | |
| 289 | } |
| 290 | |
| 291 | |
| 292 | OSStatus ptrDataRefAddMIMETypeExtension( ComponentInstance dataRefHandler, const std::string &mimeType ) |
no test coverage detected