const IStream* FileStorage::ReadFileHelper(const FileEntry& file, FileDataType dataType /*= FileDataType::Binary*/) const { const IStream* resultStream = OnReadFile(file, dataType); RETURN_NULL_IF_NULL(resultStream); const CoderChain* coderChain = GetFileCoderChain(file); if (coderChain != nullptr) { if (IsWholeFileCoding()) { MemoryStream* tempStream = new MemoryStream(file.OriginalSize(), false); coderChain->Decode(*resultStream, *tempStream); const auto data = tempStream->CurrentBuffer(); SAFE_DELETE(tempStream); MemoryStream* outputStream = new MemoryStream(data); resultStream = outputStream; } else { resultStream = new BlockCodeReadStream(*resultStream, BlockSize(), *coderChain, file); } } return resultStream; }
//----------------------------------------------------------------------------- // Name: MainDialogProc // Desc: Handles dialog messages //----------------------------------------------------------------------------- INT_PTR CALLBACK MainDialogProc( HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam ) { HRESULT hr; switch( msg ) { case WM_INITDIALOG: { // Set the icon for this dialog. HICON hIcon = LoadIcon( (HINSTANCE)GetModuleHandle(NULL), MAKEINTRESOURCE( IDI_ICON ) ); PostMessage( hDlg, WM_SETICON, ICON_BIG, (LPARAM)hIcon ); // Set big icon PostMessage( hDlg, WM_SETICON, ICON_SMALL, (LPARAM)hIcon ); // Set small icon EnableWindow( GetDlgItem( hDlg, IDC_PLAY_EFFECTS ), FALSE ); hr = InitDirectInput( hDlg ); if( FAILED(hr) ) { MessageBox( NULL, _T("Error Initializing DirectInput. ") _T("The sample will now exit."), _T("ReadFFE"), MB_ICONERROR | MB_OK ); EndDialog( hDlg, TRUE ); } return TRUE; } case WM_COMMAND: switch( LOWORD(wParam) ) { case IDCANCEL: EndDialog( hDlg, FALSE ); return TRUE; case IDC_READ_FILE: if( FAILED( hr = OnReadFile( hDlg ) ) ) { MessageBox( NULL, _T("Error reading effects file."), _T("ReadFFE"), MB_ICONERROR | MB_OK ); EnableWindow( GetDlgItem( hDlg, IDC_PLAY_EFFECTS ), FALSE ); } return TRUE; case IDC_PLAY_EFFECTS: if( FAILED( hr = OnPlayEffects( hDlg ) ) ) { MessageBox( NULL, _T("Error playing DirectInput effects. ") _T("The sample will now exit."), _T("ReadFFE"), MB_ICONERROR | MB_OK ); EndDialog( hDlg, 1 ); } return TRUE; } break; case WM_DESTROY: FreeDirectInput(); return TRUE; } return FALSE; }
void OnFileSystemCommand( SerializerContext* cmdContext, SerializerContext* respContext, unsigned char* responseBuffer, unsigned short responseBufferSize) { nmc.cmdContext = cmdContext; nmc.respContext = respContext; nmc.responseBuffer = responseBuffer; nmc.responseBufferSize = responseBufferSize; unsigned char fsCmd = 0; Get(cmdContext, (void*)&fsCmd, sizeof(fsCmd)); switch(fsCmd){ case Mount: OnMount(&nmc); break; case UnMount: OnUnMount(&nmc); break; case OpenFile: OnOpenFile(&nmc); break; case CloseFile: OnCloseFile(&nmc); break; case ReadFile: OnReadFile(&nmc); break; case WriteFile: OnWriteFile(&nmc); break; case SeekFile: OnSeekFile(&nmc); break; case TruncateFile: OnTruncateFile(&nmc); break; case SyncFile: OnSyncFile(&nmc); break; case ReadString: OnReadString(&nmc); break; case WriteString: OnWriteString(&nmc); break; case GetFilePosition: OnGetFilePosition(&nmc); break; case GetEndOfFile: OnGetEndOfFile(&nmc); break; case GetFileSize: OnGetFileSize(&nmc); break; case GetFileError: OnGetFileError(&nmc); break; case OpenDir: OnOpenDir(&nmc); break; case CloseDir: OnCloseDir(&nmc); break; case ReadDir: OnReadDir(&nmc); break; case MakeDir: OnMakeDir(&nmc); break; case ChangeDir: OnChangeDir(&nmc); break; case GetCurrentDir: OnGetCurrentDir(&nmc); break; case GetFreeSpace: OnGetFreeSpace(&nmc); break; case Unlink: OnUnlink(&nmc); break; case ChangeAttribute: OnChangeAttribute(&nmc); break; case ChangeTime: OnChangeTime(&nmc); break; case Rename: OnRename(&nmc); break; case GetDiskStatus: OnGetDiskStatus(&nmc); break; default: vt100TextColor(VT100_Red, VT100_Black); printf("%s: invalid command: %i\r\n", __func__, (int)fsCmd); vt100TextDefault(); break; } }