On 11/18/2013 16:02, Jactry Zeng wrote:
> update:
> 1. Use 0 in HeapAlloc instead of HEAP_ZERO_MEMORY;
> 2. Return an E_OUTOFMEMORY instead of HRESULT_FROM_WIN32(GetLastError())
> when HeapAlloc fail.
> + FIXME("Don't support UTF-16.\n");
How is supposed to be handled?
> + FIXME("Partial stub! Don't support flag: 0x%x\n", Flags);
At least some flags are easy to support mapping them to sharing and
creation disposition modes.
> + chBuffer = HeapAlloc(GetProcessHeap(), 0, size+1);
> + if(!chBuffer)
> + {
> + CloseHandle(hFile);
> + return E_OUTOFMEMORY;
> + }
> +
> + if(!ReadFile(hFile, chBuffer, size, &dwReadSize, NULL))
> + {
> + CloseHandle(hFile);
> + HeapFree(GetProcessHeap(), 0, chBuffer);
> + return HRESULT_FROM_WIN32(GetLastError());
> + }
> + chBuffer[size] = 0;
How will it work for UTF-16 input?
> + SendMessageW(This->editor->hWnd, EM_SETTEXTEX, (int)&settextex, (LPARAM)chBuffer);
> + CloseHandle(hFile);
> +
> + return S_OK;
Looks like you leak a buffer.