Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Call this member function to retrieve binary data from an entry within a specified section of the application's registry or .INI file.
BOOL GetProfileBinary(
LPCTSTR lpszSection,
LPCTSTR lpszEntry,
LPBYTE* ppData,
UINT* pBytes
);
Parameters
lpszSection
Points to a null-terminated string that specifies the section containing the entry.lpszEntry
Points to a null-terminated string that contains the entry whose value is to be retrieved.ppData
Points to a pointer that will receive the address of the data.pBytes
Points to a UINT that will receive the size of the data (in bytes).
Return Value
Nonzero if successful; otherwise 0.
Remarks
This member function is not case sensitive, so the strings in the lpszSection and lpszEntry parameters may differ in case.
Note
GetProfileBinary allocates a buffer and returns its address in *ppData. The caller is responsible for freeing the buffer using delete [].
![]() |
---|
The data returned by this function is not necessarily NULL terminated, and the caller must perform validation. For more information, see Avoiding Buffer Overruns. |
Example
CWinApp* pApp = AfxGetApp();
const TCHAR* pszKey = _T("My Section");
struct complex {
double re, im;
} myData = { 1.4142, -0.5 };
// Write the information to the registry.
pApp->WriteProfileBinary(pszKey, _T("ComplexData"), (LPBYTE)&myData,
sizeof(myData));
// Read the information from the registry.
complex* pData;
UINT n;
BOOL ret = pApp->GetProfileBinary(pszKey, _T("ComplexData"), (LPBYTE*)&pData,
&n);
ASSERT(ret);
ASSERT(n == sizeof(complex));
ASSERT(myData.re == pData->re);
ASSERT(myData.im == pData->im);
delete [] pData; // free the buffer
For an additional example, see CWinApp::WriteProfileBinary.
Requirements
Header: afxwin.h