在论坛上看到mc1025的代码是发送的Notepad的,修改为向WINWORD发送文件失败。        char   szFile[]   =   "C:\\456.avi"; 
HWND   hWnd   =   ::FindWindow("OpusApp", 0); 
if(hWnd   ==   NULL)   return; 
DWORD   dwBufSize   =   sizeof(DROPFILES)   +   sizeof(szFile)   +   1; 
BYTE   *pBuf   =   NULL; 
LPSTR   pszRemote   =   NULL; 
HANDLE   hProcess   =   NULL; 

__try   { 
pBuf   =   new   BYTE[dwBufSize]; 
if(pBuf   ==   NULL)   __leave; 

memset(pBuf,   0,   dwBufSize); 
DROPFILES   *pDrop   =   (DROPFILES   *)pBuf; 
pDrop-> pFiles   =   sizeof(DROPFILES); 
strcpy((char   *)(pBuf   +   sizeof(DROPFILES)),   szFile); 

DWORD   dwProcessId; 
GetWindowThreadProcessId(hWnd,   &dwProcessId); 
hProcess   =   OpenProcess(PROCESS_VM_OPERATION   |   PROCESS_VM_WRITE,   FALSE,   dwProcessId); 
if(hProcess   ==   NULL)   __leave; 

pszRemote   =   (LPSTR)VirtualAllocEx(hProcess,   NULL,   dwBufSize,   MEM_COMMIT,   PAGE_READWRITE); 
if(pszRemote   ==   NULL)   __leave; 

if(WriteProcessMemory(hProcess,   pszRemote,   pBuf,   dwBufSize,   0))   
::SendMessage(hWnd,   WM_DROPFILES,   (WPARAM)pszRemote,   NULL); 

__finally   { 
if(pBuf   !=   NULL)   delete   []pBuf; 
if(pszRemote   !=   NULL)   VirtualFreeEx(hProcess,   pszRemote,   dwBufSize,   MEM_FREE); 
if(hProcess   !=   NULL)   CloseHandle(hProcess);