|
C_SaveDiffractionDataMem |
Call C_SaveDiffractionDataMem to save OrcaWave data to memory.
void C_SaveDiffractionDataMem(
TOrcFxAPIHandle DiffractionHandle,
int DataFileType,
TOrcFxAPIHandle *lpBufferHandle,
int64_t *lpBufferLen,
int *lpStatus
);
The diffraction handle returned by C_CreateDiffraction.
Either dftBinary or dftText, to indicate whether to save the data in binary or text format.
Points to a variable in which a handle to the saved buffer will be returned.
Points to a variable in which the length of the saved buffer will be returned.
Points to a variable in which the status result for the function call will be returned.
In order to extract the contents of the buffer, you must follow the call to C_SaveDiffractionDataMem with calls to C_CopyBuffer and C_FreeBuffer. Use the value returned in lpBufferLen to allocate a suitably sized buffer. Pass this to C_CopyBuffer to perform the copy. Finally, call C_FreeBuffer to free the buffer handle.
Such code typically looks like this:
TOrcFxAPIHandle BufferHandle;
int64_t BufferLen;
int Status;
C_SaveDiffractionDataMem(DiffractionHandle, DataFileType, &BufferHandle, &BufferLen, &Status);
unsigned char *lpBuffer = new unsigned char[BufferLen];
C_CopyBuffer(BufferHandle, lpBuffer, BufferLen, &Status);
C_FreeBuffer(BufferHandle, &Status);
// use lpBuffer
delete[] lpBuffer;
Note that, for the sake of brevity, error checking has been omitted from the above code.
C_LoadDiffractionData, C_LoadDiffractionDataMem, C_LoadDiffractionResults, C_LoadDiffractionResultsMem, C_SaveDiffractionData, C_SaveDiffractionResults and C_SaveDiffractionResultsMem.