powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / ProgressBar для COM объекта
3 сообщений из 3, страница 1 из 1
ProgressBar для COM объекта
    #34026280
itan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет! Задача такая : есть у меня исходники проекта COM-объекта (DLL) на ATL. Основная программа юзает от туда всего один метод. Вот код:

Report.idl:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
 ...
interface IWordTest : IDispatch
	{
	[id( 1 ), helpstring("method CreateWordDocument")] HRESULT CreateWordDocument(BSTR FileName, BSTR xmlName);
	};
...

[
	uuid(9F367681-D1D1- 4336 - 8586 -11E3CF357BAD),
	version( 1 . 0 ),
	helpstring("Report 1.0 Type Library")
]
library REPORTCREATERLib
{
	importlib("stdole32.tlb");
	importlib("stdole2.tlb");

	[
		uuid(98C51056- 5414 -46e9-8FAD-E59099AFFF25),
		helpstring("WordTest Class")
	]
	coclass WordTest
	{
		[default] interface IWordTest;
	};
};

WordTest.h
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
class ATL_NO_VTABLE CWordTest : 
	public CComObjectRootEx<CComMultiThreadModel>,
	public CComCoClass<CWordTest, &CLSID_WordTest>,
	public IDispatchImpl<IWordTest, &IID_IWordTest, &LIBID_REPORTCREATERLib>
{
public:
	CWordTest()
	{
	}
	DECLARE_REGISTRY_RESOURCEID(IDR_WORDTEST)
	DECLARE_PROTECT_FINAL_CONSTRUCT()

	BEGIN_COM_MAP(CWordTest)
		COM_INTERFACE_ENTRY(IWordTest)
		COM_INTERFACE_ENTRY(IDispatch)
	END_COM_MAP()

public:
	CSettings m_GlobalSettings;
	STDMETHOD(CreateWordDocument)(BSTR FileName, BSTR xmlName);
 ...

Я не силен ни в COM ни в ATL, а проблема такая - необходимо реализовать индикатор прогресса в основной программе, для отображения информации о ходе выполнения процесса в методе COM объекта. У меня есть для этого специальный класс MyProgressBar. Как мне передать указатель на него в CreateWordDocument, чтобы использовать все доступные методы ?
...
Рейтинг: 0 / 0
ProgressBar для COM объекта
    #34031866
AndreiNz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Передать интерфейс 3-им параметром в CreateWordDocument. В процессе выполнения CrerateWordDocument будет вызывать один из (возможно единственный) метод этого интерфейса и таким образом обновлять прогрес бар
...
Рейтинг: 0 / 0
ProgressBar для COM объекта
    #34038273
Seagull
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Лучше в COM-класс добавить событие что-то типа OnProgress(DWORD dwProgerss)
которое будет возвращать текущее значение прогресса.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / ProgressBar для COM объекта
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]