/*++ Copyright (c) 1999 Microsoft Corporation Module Name: ini.c Abstract: IEEE1394 ARP Admin Utility. Usage: a13adm Revision History: Who When What -------- -------- --------------------------------------------- josephj 04-10-1999 Created --*/ #include "common.h" BOOL GetBinaryData( TCHAR *tszPathName, TCHAR *tszSection, TCHAR *tszKey, UCHAR *pchData, UINT cbMaxData, UINT *pcbDataSize ) { BOOL fRet = FALSE; INFCONTEXT InfCtxt; INFCONTEXT LineCtxt; HINF hInf = NULL; UINT uLine = 0; do { hInf = SetupOpenInfFile(tszPathName, NULL, INF_STYLE_WIN4, &uLine); if (hInf == INVALID_HANDLE_VALUE) { UINT Error = GetLastError(); if (Error == 0xe0000100) { printf( "\nBadly formatted ini file %s\n", tszPathName); printf( "Make sure the file contains the following section:\n" " [Version]\n" " Signature=\"$CHICAGO$\"\n\n" ); } else if (Error == 0x2) { printf("\nCould not find INI file %s\n", tszPathName); } hInf = NULL; break; } fRet = SetupFindFirstLine( hInf, tszSection, tszKey, &LineCtxt ); if (!fRet) { printf( "\nError 0x%08lx finding key \"%s\" in section \"%s\"\n in file %s\n", GetLastError(), tszKey, tszSection, tszPathName); break; } fRet = SetupGetBinaryField( &LineCtxt, 1, pchData, cbMaxData, pcbDataSize ); if (!fRet) { #if 0 printf( TEXT("SetupGetBinaryField fails. Err = %08lu\n"), GetLastError() ); #endif // 0 printf( "\nError 0x%08lx reading data from key \"%s\" in section \"%s\"\n in file %s\n", GetLastError(), tszKey, tszSection, tszPathName); break; } } while (FALSE); if (hInf != NULL) { SetupCloseInfFile(hInf); hInf = NULL; } return fRet; }