win32 ini 读取所有section 下边的key value

	const int bufferSize = 10240;
	char buffer[bufferSize] = "";

	int charsRead = 0;
	charsRead = GetPrivateProfileSectionA("record", buffer, bufferSize, "d:\\test.ini");

	if ((0 < charsRead) && ((bufferSize - 2) > charsRead)) {
		// walk the buffer extracting values

		// start at the beginning (const to remind us not to
		// change the contents of the buffer)
		const char* pSubstr = buffer;

		// while we have non-empty substrings...
		while ('\0' != *pSubstr) {
			// length of key-value pair substring
			size_t substrLen = strlen(pSubstr);

			// split substring on '=' char
			const char* pos = strchr(pSubstr, '=');
			if (NULL != pos) {
				// todo: remove "magic number" for buffer size 
				char name[256] = "";
				char value[256] = "";

				// if you're not using VC++ you'll prob. need to replace
				// _countof(name) with sizeof(name)/sizeof(char) and
				// similarly for value. Plus replace strncpy_s with plain
				// old strncpy.
				strncpy_s(name, _countof(name), pSubstr, pos - pSubstr);
				strncpy_s(value, _countof(value), pos + 1, substrLen - (pos - pSubstr));

				//nameValuePairs.push_back(NameValuePair(name, value));
				int c = 0;
			}

			// jump over the current substring plus its null
			pSubstr += (substrLen + 1);
		}
	}