Process32First()为什么总是返回0解决办法

Process32First()为什么总是返回0
//   CloseProcess.cpp   :   定义控制台应用程序的入口点。
//

#include   "stdafx.h "
#include   <windows.h>
#include   <Tlhelp32.h>
#include   <iostream>
using   namespace   std;

int   _tmain(int   argc,   _TCHAR*   argv[])
{
_TCHAR   exeFile[]   =   TEXT( "notepad ");
HANDLE   handle;
handle   =   CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,   0);

PROCESSENTRY32   processentry_info;
BOOL   result     =   Process32First(handle,   &processentry_info);
while(result)
{
cout   < <   processentry_info.th32ProcessID   < <   endl
< <   processentry_info.pcPriClassBase   < <   endl
< <   processentry_info.szExeFile   < <   endl;


if(processentry_info.szExeFile   ==   exeFile)
{
HANDLE   handleOne   =   OpenProcess(PROCESS_ALL_ACCESS,   true,   processentry_info.th32ProcessID);

TerminateProcess(handleOne,   0);
}

result   =   Process32Next(handle,   &processentry_info);
}
return   0;
}


为什么BOOL   result     =   Process32First(handle,   &processentry_info);的result总是0,请指教

------解决方案--------------------
PROCESSENTRY32 processentry_info;后面加一句:

processentry_info.dwSize = sizeof(PROCESSENTRY32);

MSDN上写的很清楚
------解决方案--------------------
if(wcscmp(processentry_info.szExeFile, _TEXT( "notepad.exe ")) == 0)
------解决方案--------------------
VC2005默认以Unicode字符集编译的
改成多字符集也可以