MCPcopy Create free account
hub / github.com/diasurgical/devilution / FileStream_OpenFile

Function FileStream_OpenFile

3rdParty/StormLib/src/FileStream.cpp:2414–2444  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2412 */
2413
2414TFileStream * FileStream_OpenFile(
2415 const TCHAR * szFileName,
2416 DWORD dwStreamFlags)
2417{
2418 DWORD dwProvider = dwStreamFlags & STREAM_PROVIDERS_MASK;
2419 size_t nPrefixLength = FileStream_Prefix(szFileName, &dwProvider);
2420
2421 // Re-assemble the stream flags
2422 dwStreamFlags = (dwStreamFlags & STREAM_OPTIONS_MASK) | dwProvider;
2423 szFileName += nPrefixLength;
2424
2425 // Perform provider-specific open
2426 switch(dwStreamFlags & STREAM_PROVIDER_MASK)
2427 {
2428 case STREAM_PROVIDER_FLAT:
2429 return FlatStream_Open(szFileName, dwStreamFlags);
2430
2431 case STREAM_PROVIDER_PARTIAL:
2432 return PartStream_Open(szFileName, dwStreamFlags);
2433
2434 case STREAM_PROVIDER_MPQE:
2435 return MpqeStream_Open(szFileName, dwStreamFlags);
2436
2437 case STREAM_PROVIDER_BLOCK4:
2438 return Block4Stream_Open(szFileName, dwStreamFlags);
2439
2440 default:
2441 SetLastError(ERROR_INVALID_PARAMETER);
2442 return NULL;
2443 }
2444}
2445
2446/**
2447 * Returns the file name of the stream

Callers 3

SFileOpenArchiveFunction · 0.85
OpenLocalFileFunction · 0.85
AllocateFileStreamFunction · 0.85

Calls 6

FileStream_PrefixFunction · 0.85
FlatStream_OpenFunction · 0.85
PartStream_OpenFunction · 0.85
MpqeStream_OpenFunction · 0.85
Block4Stream_OpenFunction · 0.85
SetLastErrorFunction · 0.85

Tested by

no test coverage detected