by TAKO(AB初心者) » 2007年9月04日(火) 13:31
あるウィンドウハンドルにファイルをドロップするC++サンプルがあるのですが、
それをActiveBasicで行いたいと考えています。
どのように書き直せばよいのでしょうか?
よろしくお願いします。
--------C++のサンプル
const char *FileNameList[]={
"c:\\autoexec.bat",
"c:\\config.sys",
NULL,
};
// ファイル名の記述に必要なメモリ量を計算
int size=0;
for(int i=0;FileNameList;i++)
size+=strlen(FileNameList)+1;
size++;
HANDLE hMem=GlobalAlloc(GMEM_ZEROINIT,sizeof(DROPFILES)+size);
char *p=(char *)GlobalLock(hMem);
DROPFILES *DropFiles=(DROPFILES *)p;
DropFiles->pFiles=sizeof(*DropFiles);
DropFiles->pt.x=10;
DropFiles->pt.y=10;
DropFiles->fNC=1;
DropFiles->fWide=0;
p+=sizeof(*DropFiles);
for(int i=0;FileNameList;i++)
strcpy(p,FileNameList);
p+=strlen(p)+1;
}
*p='\0';
GlobalUnlock(hMem);
::PostMessage(hWnd,WM_DROPFILES,(WPARAM)hMem,0);
----------------------
あるウィンドウハンドルにファイルをドロップするC++サンプルがあるのですが、
それをActiveBasicで行いたいと考えています。
どのように書き直せばよいのでしょうか?
よろしくお願いします。
--------C++のサンプル
const char *FileNameList[]={
"c:\\autoexec.bat",
"c:\\config.sys",
NULL,
};
// ファイル名の記述に必要なメモリ量を計算
int size=0;
for(int i=0;FileNameList[i];i++)
size+=strlen(FileNameList[i])+1;
size++;
HANDLE hMem=GlobalAlloc(GMEM_ZEROINIT,sizeof(DROPFILES)+size);
char *p=(char *)GlobalLock(hMem);
DROPFILES *DropFiles=(DROPFILES *)p;
DropFiles->pFiles=sizeof(*DropFiles);
DropFiles->pt.x=10;
DropFiles->pt.y=10;
DropFiles->fNC=1;
DropFiles->fWide=0;
p+=sizeof(*DropFiles);
for(int i=0;FileNameList[i];i++)
strcpy(p,FileNameList[i]);
p+=strlen(p)+1;
}
*p='\0';
GlobalUnlock(hMem);
::PostMessage(hWnd,WM_DROPFILES,(WPARAM)hMem,0);
----------------------