Original Post
I am trying to load and register global settings data with XACT. This is the code i am currently using to initialise XACT.
pEngine = NULL;
//No creation flags yet
DWORD dwCreationFlags = 0;
//Initialise COM object
CoInitialize(NULL);
//Create engine object
XACTCreateEngine(dwCreationFlags, &pEngine);
// Initialize & create the XACT runtime
VOID* pGlobalSettingsData = NULL;
DWORD dwGlobalSettingsFileSize = 0;
DWORD dwBytesRead = 0;
HANDLE hFile = CreateFile("Sounds.xgs", GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL);
if( hFile )
{
dwGlobalSettingsFileSize = GetFileSize(hFile, NULL);
if( dwGlobalSettingsFileSize != INVALID_FILE_SIZE )
{
pGlobalSettingsData = CoTaskMemAlloc(dwGlobalSettingsFileSize);
if( pGlobalSettingsData )
{
ReadFile(hFile, pGlobalSettingsData, dwGlobalSettingsFileSize, &dwBytesRead, NULL);
}
}
CloseHandle( hFile );
}
// Initialize & create the XACT runtime
XACT_RUNTIME_PARAMETERS Params = {0};
Params.pGlobalSettingsBuffer = pGlobalSettingsData;
Params.globalSettingsBufferSize = dwGlobalSettingsFileSize;
Params.globalSettingsFlags = XACT_FLAG_GLOBAL_SETTINGS_MANAGEDATA;
Params.lookAheadTime = 250;
//Initialise IXACT engine object
HRESULT Result = pEngine->Initialize(&Params);
assert(Result == S_OK);
pEngine isn't initialised properly when the pGlobalSettingsBuffer and pGlobalSettingsBufferSize are set, and passed to the initialize function. It works fine when no params are passed. Can anyone tell me if i'm missing anything or doing something wrong? Thanks