fix some bugs in CreateActCtxA

svn path=/trunk/; revision=26393
This commit is contained in:
Christoph von Wittich 2007-04-18 12:31:39 +00:00
parent 285ed6ed7e
commit 99163e450a

View file

@ -65,44 +65,48 @@ CreateActCtxA(
ACTCTXW pActCtxW;
HANDLE hRetVal;
ZeroMemory(&pActCtxW, sizeof(pActCtxW));
pActCtxW.cbSize = sizeof(pActCtxW);
ZeroMemory(&pActCtxW, sizeof(ACTCTXW));
pActCtxW.cbSize = sizeof(ACTCTXW);
pActCtxW.dwFlags = pActCtx->dwFlags;
pActCtxW.wLangId = pActCtx->wLangId;
pActCtxW.hModule = pActCtx->hModule;
pActCtxW.wProcessorArchitecture = pActCtx->wProcessorArchitecture;
pActCtxW.dwFlags = pActCtx->wProcessorArchitecture;
pActCtxW.hModule = pActCtx->hModule;
/* Convert ActCtx Strings */
if (pActCtx->lpAssemblyDirectory)
{
BasepAnsiStringToHeapUnicodeString(pActCtx->lpSource,
(LPWSTR*) &pActCtxW.lpSource);
}
if (pActCtx->lpAssemblyDirectory)
{
BasepAnsiStringToHeapUnicodeString(pActCtx->lpAssemblyDirectory,
(LPWSTR*) &pActCtxW.lpAssemblyDirectory);
}
if (pActCtx->lpResourceName)
{
BasepAnsiStringToHeapUnicodeString(pActCtx->lpResourceName,
(LPWSTR*) &pActCtxW.lpResourceName);
}
if (pActCtx->lpApplicationName)
{
BasepAnsiStringToHeapUnicodeString(pActCtx->lpApplicationName,
(LPWSTR*) &pActCtxW.lpApplicationName);
}
if (pActCtx->lpSource)
{
BasepAnsiStringToHeapUnicodeString(pActCtx->lpSource,
(LPWSTR*) &pActCtxW.lpSource);
}
if (pActCtx->lpAssemblyDirectory)
{
BasepAnsiStringToHeapUnicodeString(pActCtx->lpAssemblyDirectory,
(LPWSTR*) &pActCtxW.lpAssemblyDirectory);
}
if (HIWORD(pActCtx->lpResourceName))
{
BasepAnsiStringToHeapUnicodeString(pActCtx->lpResourceName,
(LPWSTR*) &pActCtxW.lpResourceName);
}
else
{
pActCtxW.lpResourceName = (LPWSTR) pActCtx->lpResourceName;
}
if (pActCtx->lpApplicationName)
{
BasepAnsiStringToHeapUnicodeString(pActCtx->lpApplicationName,
(LPWSTR*) &pActCtxW.lpApplicationName);
}
/* Call the Unicode function */
hRetVal = CreateActCtxW(&pActCtxW);
/* Clean up */
RtlFreeHeap(GetProcessHeap(), 0, (LPWSTR*) pActCtxW.lpSource);
RtlFreeHeap(GetProcessHeap(), 0, (LPWSTR*) pActCtxW.lpAssemblyDirectory);
RtlFreeHeap(GetProcessHeap(), 0, (LPWSTR*) pActCtxW.lpResourceName);
if (HIWORD(pActCtx->lpResourceName))
RtlFreeHeap(GetProcessHeap(), 0, (LPWSTR*) pActCtxW.lpResourceName);
RtlFreeHeap(GetProcessHeap(), 0, (LPWSTR*) pActCtxW.lpApplicationName);
return hRetVal;