Форум программистов, компьютерный форум CyberForum.ru

C++

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 4.80
Vitam1n
4 / 4 / 0
Регистрация: 19.01.2011
Сообщений: 26
#1

Подключение TLB-файла - C++

19.01.2011, 13:20. Просмотров 2528. Ответов 0
Метки нет (Все метки)

Доброе время суток.
Попросили написать программу учета для кассового аппарата. Чтобы хозяин пришел глянул что как, подредактировал и ушел.
На сайте производителя нашел описание протокола связи между ПК и КА, но он был не полным, были описаны некоторые методы считывания информации, но без записи, была затронута запись но данных не дали. Короче документация ужасная.
В точке по продажам мне посоветовали воспользоваться Offline-сервером для обращения к КА, это типа как посредник.

Вот ссылка на оффлайн сервер с сайта разработчика
Вот ссылка для владельцев W7, так как инсталлятор не запуститься на ней (инсталлятор добавляет ключи реестра, архив - нет!)

В этом дистрибутиве находятся:
  • MiniOffOLE.exe – сервер автоматизации.
  • MiniOffOLE.tlb – библиотека типов (описание объектов, интерфейсов и методов сервера).
  • MiniOffline.dll – DLL-библиотека, используемая сервером.
  • MiniOffDemo.exe – программа демонстрации методов сервера.


Вот в принципе все.

Hader-файла в поставке нету. Создал MFC-приложение и через Class Wizard (Add Class -> MFC Class from TypeLib...) добавил TLB файл, он создал хэдер-файл, уже хорошо. в нем не хватает afxdisp.h, подключаю, потом вылетает 64 ошибки и я не знаю что с ними делать. (VC++2010)

А вопрос звучит так: Подскажите пожалуйста, что сделать, чтоб я смог этим оффлайн сервером воспользоваться?

Добавлено через 1 час 1 минуту
Так, я тут почитал и понял, что установка регистрирует этот оффлайн-сервер как OLE-базу данных, и мне нужно в своей программе создать объект OLE с указанием на ту регистрацию и работать уже с ней.
Отсюда вопрос: как создать OLE объект без установки (там с указанием dll, exe, tlb или еще чего) (буду говорить объект потому как не силен в терминологии) с использованием MFC?

P.S. Демонстрационная программа работает (после запуска MiniOffOLE.exe, он потом висит в памяти) и корректно обращается к моему КА без установки OLE в системе.

Добавлено через 15 минут
Блин... COffline в созданном файле и есть COleDispatchDriver, проглядел.
Теперь я в замешательстве...

Добавлено через 24 минуты
Немного разобрался..

C++
1
2
3
COffLine *off = new COffLine();
off->CreateDispatch("Mini_OffOLE.Offline");
off->OpenSes_(6, 38400, "600.04", "6401");
Прежде чем вызывать методы COffline я должен был создать "диспетчера". Вот так выглядело бы оно при установленном диспетчере в систему.

Демонстрационная программка в архиве работает без установки потому что сама вручную запускает сервер (было установлено путем просмотра запущенных процессов до и после) и работает с ним, после закрытия демы сервер тоже закрывается (на самом деле "до" но это не суть важно).

Отсюда вопрос, как мне создать, так сказать этот сервер, как это делает дема. Может какой-то класс, в конструкторе которого должны находиться путь к серверу и к файлу TLB...

Добавлено через 11 часов 5 минут
Посмотрел папку с проектом, студия по TLB создала TLH и TLI файлы, вот их содержание:
C++
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
// Created by Microsoft (R) C/C++ Compiler Version 10.00.30319.01 (42f08fd0).
//
// c:\users\yahoo\documents\visual studio 2010\projects\console\debug\minioffole.tlh
//
// C++ source equivalent of Win32 type library MiniOffOLE.tlb
// compiler-generated file created 01/18/11 at 22:12:18 - DO NOT EDIT!
 
#pragma once
#pragma pack(push, 8)
 
#include <comdef.h>
 
//
// Forward references and typedefs
//
 
struct __declspec(uuid("6073a896-ecf3-4bde-87c6-a1be214efddc"))
/* LIBID */ __Mini_OffOLE;
struct __declspec(uuid("95199ce4-4678-4200-a32d-b13057c2fa0d"))
/* dual interface */ IOffLine;
struct /* coclass */ OffLine;
 
//
// Smart pointer typedef declarations
//
 
_COM_SMARTPTR_TYPEDEF(IOffLine, __uuidof(IOffLine));
 
//
// Type library items
//
 
struct __declspec(uuid("95199ce4-4678-4200-a32d-b13057c2fa0d"))
IOffLine : IDispatch
{
    //
    // Property data
    //
 
    __declspec(property(get=GetLastErr))
    long LastErr;
    __declspec(property(get=GetErrPath))
    _bstr_t ErrPath;
    __declspec(property(get=GetModelVers))
    _bstr_t ModelVers;
    __declspec(property(get=GetRep501))
    long Rep501;
    __declspec(property(get=GetRep502))
    long Rep502;
    __declspec(property(get=GetRep503))
    long Rep503;
    __declspec(property(get=GetArtic))
    long Artic;
    __declspec(property(get=GetGoodsCode))
    _bstr_t GoodsCode;
    __declspec(property(get=GetName))
    _bstr_t Name;
    __declspec(property(get=GetPrice))
    double Price;
    __declspec(property(get=GetQuantity))
    double Quantity;
    __declspec(property(get=GetDep))
    long Dep;
    __declspec(property(get=GetTaxGroup))
    long TaxGroup;
    __declspec(property(get=GetQnt_Sale))
    double Qnt_Sale;
    __declspec(property(get=GetSum_Sale))
    double Sum_Sale;
    __declspec(property(get=GetQnt_Disburse))
    double Qnt_Disburse;
    __declspec(property(get=GetSum_Disburse))
    double Sum_Disburse;
    __declspec(property(get=GetSale1))
    long Sale1;
    __declspec(property(get=GetDscntSum_Sale))
    double DscntSum_Sale;
    __declspec(property(get=GetMrkupSum_Sale))
    double MrkupSum_Sale;
    __declspec(property(get=GetDscntSum_Disburse))
    double DscntSum_Disburse;
    __declspec(property(get=GetMrkupSum_Disburse))
    double MrkupSum_Disburse;
    __declspec(property(get=GetWeight))
    long Weight;
    __declspec(property(get=GetCtrl_rest))
    long Ctrl_rest;
    __declspec(property(get=GetBarLen))
    long BarLen;
    __declspec(property(get=GetEcrNumber))
    _bstr_t EcrNumber;
 
    //
    // Wrapper methods for error-handling
    //
 
    VARIANT_BOOL OpenSes_ (
        long ncom,
        long rate,
        _bstr_t EcrModel,
        _bstr_t EcrVers );
    VARIANT_BOOL CloseSes_ (
        _bstr_t EcrModel,
        _bstr_t EcrVers );
    VARIANT_BOOL EcrType_ (
        BSTR * ModelVers );
    VARIANT_BOOL RepState_ (
        VARIANT_BOOL * Rep501,
        VARIANT_BOOL * Rep502,
        VARIANT_BOOL * Rep503 );
    VARIANT_BOOL SetGoods_ (
        long Artic,
        _bstr_t GoodsCode,
        _bstr_t Name,
        double Price,
        double Quantity,
        long Dep,
        long TaxGroup,
        long Sale1 );
    VARIANT_BOOL GetGoods_ (
        _bstr_t Number,
        long Next,
        long * Artic,
        BSTR * GoodsCode,
        BSTR * Name,
        double * Price,
        double * Quantity,
        long * Dep,
        long * TaxGroup,
        double * Qnt_Sale,
        double * Sum_Sale,
        double * Qnt_Disburse,
        double * Sum_Disburse,
        long * Sale1 );
    VARIANT_BOOL GetGoodsDM_ (
        long Number,
        long Next,
        long * Artic,
        BSTR * GoodsCode,
        BSTR * Name,
        double * Price,
        double * Quantity,
        long * Dep,
        long * TaxGroup,
        double * Qnt_Sale,
        double * Sum_Sale,
        double * Qnt_Disburse,
        double * Sum_Disburse,
        long * Sale1,
        double * DscntSum_Sale,
        double * MrkupSum_Sale,
        double * DscntSum_Disburse,
        double * MrkupSum_Disburse );
    VARIANT_BOOL DelAllGds_ ( );
    VARIANT_BOOL LoadGds500_01_ (
        long Artic,
        _bstr_t GoodsCode,
        _bstr_t Name,
        double Price,
        double Quantity,
        long Dep,
        long TaxGroup,
        long Sale1,
        long Next );
    VARIANT_BOOL ArtCode500_01_ (
        long Inp_Artic,
        _bstr_t Inp_GoodsCode,
        long * Artic,
        BSTR * GoodsCode,
        BSTR * Name,
        double * Price,
        double * Quantity,
        long * Dep,
        long * TaxGroup,
        double * Qnt_Sale,
        double * Sum_Sale,
        double * Qnt_Disburse,
        double * Sum_Disburse,
        double * SumDiscount_Sale,
        double * SumMarkup_Sale,
        double * SumDiscount_Disburse,
        double * SumMarkup_Disburse,
        long * Weight,
        long * Sale1,
        long * Ctrl_rest );
    _bstr_t GetLastErr_ ( );
    _bstr_t GetLastErrPath_ ( );
    long GetLastErr ( );
    _bstr_t GetErrPath ( );
    _bstr_t GetModelVers ( );
    long GetRep501 ( );
    long GetRep502 ( );
    long GetRep503 ( );
    long GetArtic ( );
    _bstr_t GetGoodsCode ( );
    _bstr_t GetName ( );
    double GetPrice ( );
    double GetQuantity ( );
    long GetDep ( );
    long GetTaxGroup ( );
    double GetQnt_Sale ( );
    double GetSum_Sale ( );
    double GetQnt_Disburse ( );
    double GetSum_Disburse ( );
    long GetSale1 ( );
    double GetDscntSum_Sale ( );
    double GetMrkupSum_Sale ( );
    double GetDscntSum_Disburse ( );
    double GetMrkupSum_Disburse ( );
    long GetWeight ( );
    long GetCtrl_rest ( );
    VARIANT_BOOL EcrCommand_ (
        _bstr_t Command );
    _bstr_t GetEcrNumber_ ( );
    _bstr_t GetEcrNumber ( );
    long GetBarLen ( );
    VARIANT_BOOL GetBarLen_ (
        long * CodeLen );
 
    //
    // Raw methods provided by interface
    //
 
      virtual HRESULT __stdcall raw_OpenSes_ (
        /*[in]*/ long ncom,
        /*[in]*/ long rate,
        /*[in]*/ BSTR EcrModel,
        /*[in]*/ BSTR EcrVers,
        /*[out,retval]*/ VARIANT_BOOL * Value ) = 0;
      virtual HRESULT __stdcall raw_CloseSes_ (
        /*[in]*/ BSTR EcrModel,
        /*[in]*/ BSTR EcrVers,
        /*[out,retval]*/ VARIANT_BOOL * Value ) = 0;
      virtual HRESULT __stdcall raw_EcrType_ (
        /*[out]*/ BSTR * ModelVers,
        /*[out,retval]*/ VARIANT_BOOL * Value ) = 0;
      virtual HRESULT __stdcall raw_RepState_ (
        /*[in,out]*/ VARIANT_BOOL * Rep501,
        /*[in,out]*/ VARIANT_BOOL * Rep502,
        /*[in,out]*/ VARIANT_BOOL * Rep503,
        /*[out,retval]*/ VARIANT_BOOL * Value ) = 0;
      virtual HRESULT __stdcall raw_SetGoods_ (
        /*[in]*/ long Artic,
        /*[in]*/ BSTR GoodsCode,
        /*[in]*/ BSTR Name,
        /*[in]*/ double Price,
        /*[in]*/ double Quantity,
        /*[in]*/ long Dep,
        /*[in]*/ long TaxGroup,
        /*[in]*/ long Sale1,
        /*[out,retval]*/ VARIANT_BOOL * Value ) = 0;
      virtual HRESULT __stdcall raw_GetGoods_ (
        /*[in]*/ BSTR Number,
        /*[in]*/ long Next,
        /*[out]*/ long * Artic,
        /*[out]*/ BSTR * GoodsCode,
        /*[out]*/ BSTR * Name,
        /*[out]*/ double * Price,
        /*[out]*/ double * Quantity,
        /*[out]*/ long * Dep,
        /*[out]*/ long * TaxGroup,
        /*[out]*/ double * Qnt_Sale,
        /*[out]*/ double * Sum_Sale,
        /*[out]*/ double * Qnt_Disburse,
        /*[out]*/ double * Sum_Disburse,
        /*[out]*/ long * Sale1,
        /*[out,retval]*/ VARIANT_BOOL * Value ) = 0;
      virtual HRESULT __stdcall raw_GetGoodsDM_ (
        /*[in]*/ long Number,
        /*[in]*/ long Next,
        /*[out]*/ long * Artic,
        /*[out]*/ BSTR * GoodsCode,
        /*[out]*/ BSTR * Name,
        /*[out]*/ double * Price,
        /*[out]*/ double * Quantity,
        /*[out]*/ long * Dep,
        /*[out]*/ long * TaxGroup,
        /*[out]*/ double * Qnt_Sale,
        /*[out]*/ double * Sum_Sale,
        /*[out]*/ double * Qnt_Disburse,
        /*[out]*/ double * Sum_Disburse,
        /*[out]*/ long * Sale1,
        /*[out]*/ double * DscntSum_Sale,
        /*[out]*/ double * MrkupSum_Sale,
        /*[out]*/ double * DscntSum_Disburse,
        /*[out]*/ double * MrkupSum_Disburse,
        /*[out,retval]*/ VARIANT_BOOL * Value ) = 0;
      virtual HRESULT __stdcall raw_DelAllGds_ (
        /*[out,retval]*/ VARIANT_BOOL * Value ) = 0;
      virtual HRESULT __stdcall raw_LoadGds500_01_ (
        /*[in]*/ long Artic,
        /*[in]*/ BSTR GoodsCode,
        /*[in]*/ BSTR Name,
        /*[in]*/ double Price,
        /*[in]*/ double Quantity,
        /*[in]*/ long Dep,
        /*[in]*/ long TaxGroup,
        /*[in]*/ long Sale1,
        /*[in]*/ long Next,
        /*[out,retval]*/ VARIANT_BOOL * Value ) = 0;
      virtual HRESULT __stdcall raw_ArtCode500_01_ (
        /*[in]*/ long Inp_Artic,
        /*[in]*/ BSTR Inp_GoodsCode,
        /*[out]*/ long * Artic,
        /*[out]*/ BSTR * GoodsCode,
        /*[out]*/ BSTR * Name,
        /*[out]*/ double * Price,
        /*[out]*/ double * Quantity,
        /*[out]*/ long * Dep,
        /*[out]*/ long * TaxGroup,
        /*[out]*/ double * Qnt_Sale,
        /*[out]*/ double * Sum_Sale,
        /*[out]*/ double * Qnt_Disburse,
        /*[out]*/ double * Sum_Disburse,
        /*[out]*/ double * SumDiscount_Sale,
        /*[out]*/ double * SumMarkup_Sale,
        /*[out]*/ double * SumDiscount_Disburse,
        /*[out]*/ double * SumMarkup_Disburse,
        /*[out]*/ long * Weight,
        /*[out]*/ long * Sale1,
        /*[out]*/ long * Ctrl_rest,
        /*[out,retval]*/ VARIANT_BOOL * Value ) = 0;
      virtual HRESULT __stdcall raw_GetLastErr_ (
        /*[out,retval]*/ BSTR * Value ) = 0;
      virtual HRESULT __stdcall raw_GetLastErrPath_ (
        /*[out,retval]*/ BSTR * Value ) = 0;
      virtual HRESULT __stdcall get_LastErr (
        /*[out,retval]*/ long * Value ) = 0;
      virtual HRESULT __stdcall get_ErrPath (
        /*[out,retval]*/ BSTR * Value ) = 0;
      virtual HRESULT __stdcall get_ModelVers (
        /*[out,retval]*/ BSTR * Value ) = 0;
      virtual HRESULT __stdcall get_Rep501 (
        /*[out,retval]*/ long * Value ) = 0;
      virtual HRESULT __stdcall get_Rep502 (
        /*[out,retval]*/ long * Value ) = 0;
      virtual HRESULT __stdcall get_Rep503 (
        /*[out,retval]*/ long * Value ) = 0;
      virtual HRESULT __stdcall get_Artic (
        /*[out,retval]*/ long * Value ) = 0;
      virtual HRESULT __stdcall get_GoodsCode (
        /*[out,retval]*/ BSTR * Value ) = 0;
      virtual HRESULT __stdcall get_Name (
        /*[out,retval]*/ BSTR * Value ) = 0;
      virtual HRESULT __stdcall get_Price (
        /*[out,retval]*/ double * Value ) = 0;
      virtual HRESULT __stdcall get_Quantity (
        /*[out,retval]*/ double * Value ) = 0;
      virtual HRESULT __stdcall get_Dep (
        /*[out,retval]*/ long * Value ) = 0;
      virtual HRESULT __stdcall get_TaxGroup (
        /*[out,retval]*/ long * Value ) = 0;
      virtual HRESULT __stdcall get_Qnt_Sale (
        /*[out,retval]*/ double * Value ) = 0;
      virtual HRESULT __stdcall get_Sum_Sale (
        /*[out,retval]*/ double * Value ) = 0;
      virtual HRESULT __stdcall get_Qnt_Disburse (
        /*[out,retval]*/ double * Value ) = 0;
      virtual HRESULT __stdcall get_Sum_Disburse (
        /*[out,retval]*/ double * Value ) = 0;
      virtual HRESULT __stdcall get_Sale1 (
        /*[out,retval]*/ long * Value ) = 0;
      virtual HRESULT __stdcall get_DscntSum_Sale (
        /*[out,retval]*/ double * Value ) = 0;
      virtual HRESULT __stdcall get_MrkupSum_Sale (
        /*[out,retval]*/ double * Value ) = 0;
      virtual HRESULT __stdcall get_DscntSum_Disburse (
        /*[out,retval]*/ double * Value ) = 0;
      virtual HRESULT __stdcall get_MrkupSum_Disburse (
        /*[out,retval]*/ double * Value ) = 0;
      virtual HRESULT __stdcall get_Weight (
        /*[out,retval]*/ long * Value ) = 0;
      virtual HRESULT __stdcall get_Ctrl_rest (
        /*[out,retval]*/ long * Value ) = 0;
      virtual HRESULT __stdcall raw_EcrCommand_ (
        /*[in]*/ BSTR Command,
        /*[out,retval]*/ VARIANT_BOOL * Value ) = 0;
      virtual HRESULT __stdcall raw_GetEcrNumber_ (
        /*[out,retval]*/ BSTR * Value ) = 0;
      virtual HRESULT __stdcall get_EcrNumber (
        /*[out,retval]*/ BSTR * Value ) = 0;
      virtual HRESULT __stdcall get_BarLen (
        /*[out,retval]*/ long * Value ) = 0;
      virtual HRESULT __stdcall raw_GetBarLen_ (
        /*[out]*/ long * CodeLen,
        /*[out,retval]*/ VARIANT_BOOL * Value ) = 0;
};
 
struct __declspec(uuid("1c0870c6-bbd2-413f-a0b9-3db71f6ed37f"))
OffLine;
    // [ default ] interface IOffLine
 
//
// Wrapper method implementations
//
 
#include "c:\users\yahoo\documents\visual studio 2010\projects\console\debug\minioffole.tli"
 
#pragma pack(pop)
C++
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
// Created by Microsoft (R) C/C++ Compiler Version 10.00.30319.01 (42f08fd0).
//
// c:\users\yahoo\documents\visual studio 2010\projects\console\debug\minioffole.tli
//
// Wrapper implementations for Win32 type library MiniOffOLE.tlb
// compiler-generated file created 01/18/11 at 22:12:18 - DO NOT EDIT!
 
#pragma once
 
//
// interface IOffLine wrapper method implementations
//
 
inline VARIANT_BOOL IOffLine::OpenSes_ ( long ncom, long rate, _bstr_t EcrModel, _bstr_t EcrVers ) {
    VARIANT_BOOL _result = 0;
    HRESULT _hr = raw_OpenSes_(ncom, rate, EcrModel, EcrVers, &_result);
    if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
    return _result;
}
 
inline VARIANT_BOOL IOffLine::CloseSes_ ( _bstr_t EcrModel, _bstr_t EcrVers ) {
    VARIANT_BOOL _result = 0;
    HRESULT _hr = raw_CloseSes_(EcrModel, EcrVers, &_result);
    if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
    return _result;
}
 
inline VARIANT_BOOL IOffLine::EcrType_ ( BSTR * ModelVers ) {
    VARIANT_BOOL _result = 0;
    HRESULT _hr = raw_EcrType_(ModelVers, &_result);
    if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
    return _result;
}
 
inline VARIANT_BOOL IOffLine::RepState_ ( VARIANT_BOOL * Rep501, VARIANT_BOOL * Rep502, VARIANT_BOOL * Rep503 ) {
    VARIANT_BOOL _result = 0;
    HRESULT _hr = raw_RepState_(Rep501, Rep502, Rep503, &_result);
    if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
    return _result;
}
 
inline VARIANT_BOOL IOffLine::SetGoods_ ( long Artic, _bstr_t GoodsCode, _bstr_t Name, double Price, double Quantity, long Dep, long TaxGroup, long Sale1 ) {
    VARIANT_BOOL _result = 0;
    HRESULT _hr = raw_SetGoods_(Artic, GoodsCode, Name, Price, Quantity, Dep, TaxGroup, Sale1, &_result);
    if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
    return _result;
}
 
inline VARIANT_BOOL IOffLine::GetGoods_ ( _bstr_t Number, long Next, long * Artic, BSTR * GoodsCode, BSTR * Name, double * Price, double * Quantity, long * Dep, long * TaxGroup, double * Qnt_Sale, double * Sum_Sale, double * Qnt_Disburse, double * Sum_Disburse, long * Sale1 ) {
    VARIANT_BOOL _result = 0;
    HRESULT _hr = raw_GetGoods_(Number, Next, Artic, GoodsCode, Name, Price, Quantity, Dep, TaxGroup, Qnt_Sale, Sum_Sale, Qnt_Disburse, Sum_Disburse, Sale1, &_result);
    if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
    return _result;
}
 
inline VARIANT_BOOL IOffLine::GetGoodsDM_ ( long Number, long Next, long * Artic, BSTR * GoodsCode, BSTR * Name, double * Price, double * Quantity, long * Dep, long * TaxGroup, double * Qnt_Sale, double * Sum_Sale, double * Qnt_Disburse, double * Sum_Disburse, long * Sale1, double * DscntSum_Sale, double * MrkupSum_Sale, double * DscntSum_Disburse, double * MrkupSum_Disburse ) {
    VARIANT_BOOL _result = 0;
    HRESULT _hr = raw_GetGoodsDM_(Number, Next, Artic, GoodsCode, Name, Price, Quantity, Dep, TaxGroup, Qnt_Sale, Sum_Sale, Qnt_Disburse, Sum_Disburse, Sale1, DscntSum_Sale, MrkupSum_Sale, DscntSum_Disburse, MrkupSum_Disburse, &_result);
    if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
    return _result;
}
 
inline VARIANT_BOOL IOffLine::DelAllGds_ ( ) {
    VARIANT_BOOL _result = 0;
    HRESULT _hr = raw_DelAllGds_(&_result);
    if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
    return _result;
}
 
inline VARIANT_BOOL IOffLine::LoadGds500_01_ ( long Artic, _bstr_t GoodsCode, _bstr_t Name, double Price, double Quantity, long Dep, long TaxGroup, long Sale1, long Next ) {
    VARIANT_BOOL _result = 0;
    HRESULT _hr = raw_LoadGds500_01_(Artic, GoodsCode, Name, Price, Quantity, Dep, TaxGroup, Sale1, Next, &_result);
    if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
    return _result;
}
 
inline VARIANT_BOOL IOffLine::ArtCode500_01_ ( long Inp_Artic, _bstr_t Inp_GoodsCode, long * Artic, BSTR * GoodsCode, BSTR * Name, double * Price, double * Quantity, long * Dep, long * TaxGroup, double * Qnt_Sale, double * Sum_Sale, double * Qnt_Disburse, double * Sum_Disburse, double * SumDiscount_Sale, double * SumMarkup_Sale, double * SumDiscount_Disburse, double * SumMarkup_Disburse, long * Weight, long * Sale1, long * Ctrl_rest ) {
    VARIANT_BOOL _result = 0;
    HRESULT _hr = raw_ArtCode500_01_(Inp_Artic, Inp_GoodsCode, Artic, GoodsCode, Name, Price, Quantity, Dep, TaxGroup, Qnt_Sale, Sum_Sale, Qnt_Disburse, Sum_Disburse, SumDiscount_Sale, SumMarkup_Sale, SumDiscount_Disburse, SumMarkup_Disburse, Weight, Sale1, Ctrl_rest, &_result);
    if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
    return _result;
}
 
inline _bstr_t IOffLine::GetLastErr_ ( ) {
    BSTR _result = 0;
    HRESULT _hr = raw_GetLastErr_(&_result);
    if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
    return _bstr_t(_result, false);
}
 
inline _bstr_t IOffLine::GetLastErrPath_ ( ) {
    BSTR _result = 0;
    HRESULT _hr = raw_GetLastErrPath_(&_result);
    if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
    return _bstr_t(_result, false);
}
 
inline long IOffLine::GetLastErr ( ) {
    long _result = 0;
    HRESULT _hr = get_LastErr(&_result);
    if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
    return _result;
}
 
inline _bstr_t IOffLine::GetErrPath ( ) {
    BSTR _result = 0;
    HRESULT _hr = get_ErrPath(&_result);
    if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
    return _bstr_t(_result, false);
}
 
inline _bstr_t IOffLine::GetModelVers ( ) {
    BSTR _result = 0;
    HRESULT _hr = get_ModelVers(&_result);
    if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
    return _bstr_t(_result, false);
}
 
inline long IOffLine::GetRep501 ( ) {
    long _result = 0;
    HRESULT _hr = get_Rep501(&_result);
    if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
    return _result;
}
 
inline long IOffLine::GetRep502 ( ) {
    long _result = 0;
    HRESULT _hr = get_Rep502(&_result);
    if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
    return _result;
}
 
inline long IOffLine::GetRep503 ( ) {
    long _result = 0;
    HRESULT _hr = get_Rep503(&_result);
    if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
    return _result;
}
 
inline long IOffLine::GetArtic ( ) {
    long _result = 0;
    HRESULT _hr = get_Artic(&_result);
    if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
    return _result;
}
 
inline _bstr_t IOffLine::GetGoodsCode ( ) {
    BSTR _result = 0;
    HRESULT _hr = get_GoodsCode(&_result);
    if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
    return _bstr_t(_result, false);
}
 
inline _bstr_t IOffLine::GetName ( ) {
    BSTR _result = 0;
    HRESULT _hr = get_Name(&_result);
    if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
    return _bstr_t(_result, false);
}
 
inline double IOffLine::GetPrice ( ) {
    double _result = 0;
    HRESULT _hr = get_Price(&_result);
    if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
    return _result;
}
 
inline double IOffLine::GetQuantity ( ) {
    double _result = 0;
    HRESULT _hr = get_Quantity(&_result);
    if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
    return _result;
}
 
inline long IOffLine::GetDep ( ) {
    long _result = 0;
    HRESULT _hr = get_Dep(&_result);
    if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
    return _result;
}
 
inline long IOffLine::GetTaxGroup ( ) {
    long _result = 0;
    HRESULT _hr = get_TaxGroup(&_result);
    if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
    return _result;
}
 
inline double IOffLine::GetQnt_Sale ( ) {
    double _result = 0;
    HRESULT _hr = get_Qnt_Sale(&_result);
    if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
    return _result;
}
 
inline double IOffLine::GetSum_Sale ( ) {
    double _result = 0;
    HRESULT _hr = get_Sum_Sale(&_result);
    if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
    return _result;
}
 
inline double IOffLine::GetQnt_Disburse ( ) {
    double _result = 0;
    HRESULT _hr = get_Qnt_Disburse(&_result);
    if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
    return _result;
}
 
inline double IOffLine::GetSum_Disburse ( ) {
    double _result = 0;
    HRESULT _hr = get_Sum_Disburse(&_result);
    if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
    return _result;
}
 
inline long IOffLine::GetSale1 ( ) {
    long _result = 0;
    HRESULT _hr = get_Sale1(&_result);
    if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
    return _result;
}
 
inline double IOffLine::GetDscntSum_Sale ( ) {
    double _result = 0;
    HRESULT _hr = get_DscntSum_Sale(&_result);
    if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
    return _result;
}
 
inline double IOffLine::GetMrkupSum_Sale ( ) {
    double _result = 0;
    HRESULT _hr = get_MrkupSum_Sale(&_result);
    if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
    return _result;
}
 
inline double IOffLine::GetDscntSum_Disburse ( ) {
    double _result = 0;
    HRESULT _hr = get_DscntSum_Disburse(&_result);
    if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
    return _result;
}
 
inline double IOffLine::GetMrkupSum_Disburse ( ) {
    double _result = 0;
    HRESULT _hr = get_MrkupSum_Disburse(&_result);
    if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
    return _result;
}
 
inline long IOffLine::GetWeight ( ) {
    long _result = 0;
    HRESULT _hr = get_Weight(&_result);
    if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
    return _result;
}
 
inline long IOffLine::GetCtrl_rest ( ) {
    long _result = 0;
    HRESULT _hr = get_Ctrl_rest(&_result);
    if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
    return _result;
}
 
inline VARIANT_BOOL IOffLine::EcrCommand_ ( _bstr_t Command ) {
    VARIANT_BOOL _result = 0;
    HRESULT _hr = raw_EcrCommand_(Command, &_result);
    if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
    return _result;
}
 
inline _bstr_t IOffLine::GetEcrNumber_ ( ) {
    BSTR _result = 0;
    HRESULT _hr = raw_GetEcrNumber_(&_result);
    if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
    return _bstr_t(_result, false);
}
 
inline _bstr_t IOffLine::GetEcrNumber ( ) {
    BSTR _result = 0;
    HRESULT _hr = get_EcrNumber(&_result);
    if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
    return _bstr_t(_result, false);
}
 
inline long IOffLine::GetBarLen ( ) {
    long _result = 0;
    HRESULT _hr = get_BarLen(&_result);
    if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
    return _result;
}
 
inline VARIANT_BOOL IOffLine::GetBarLen_ ( long * CodeLen ) {
    VARIANT_BOOL _result = 0;
    HRESULT _hr = raw_GetBarLen_(CodeLen, &_result);
    if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
    return _result;
}
я так понимаю что мне нужно создать OLE-объекты на основе Offline или IOffline, но я в корне не умею с OLE работать. Можете объяснить на пальцах как это все сделать, а то гугл не помогает, и МСДН не может мне ничего конкретного сказать...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.01.2011, 13:20     Подключение TLB-файла
Посмотрите здесь:

Ошибка компиляции при подключении TLB - C++ COM
При подключении(#import) TLB к консольному приложению возникает ошибка &quot;redefinition; different storage class&quot;. В tlh файле ошибки...

Как получить библиотеку типа *.tlb из COM-объекта *.exe - C++ COM
Здравствуйте! =) Прошу подсказку у экспертов в COM`е. Можно ли сгенерировать библиотеку типа Tratata.tlb по имеющемуся...

Подключение файла - Visual C++
В чем может быть дело: я создаю классы в одном файле, вызываю их из главного файла, а он их не видит, хотя я все файлы прописала в...

Подключение файла справки - C++ Builder
подскажите девочке как подключить файл справки расширения *.chm, справка сделана в WINCHM

Подключение obj файла - Visual C++
Всем добрый день Сделал в МАСМ obj файл Вот его шапка .486 .model flat,stdcall .code start: public matrixlab matrixlab...

Подключение заголовочного файла - C++
Как подключить правильно заголовочный файл и какие библиотеки подключать в заголовочном файле?

Подключение файла заголовка - C++
Я создал проект Win32 - выбрал пустой проект а далее создал файл заголовка Cat.hpp: #include &lt;iostreram&gt; class Cat { public: ...

Подключение obj файла - Visual C++
Здравствуйте, задали на лабаре сделать любую программу, которая использует функции написанные на других языках. Используя только метод...

Подключение cpp файла - C++ Builder
Всем привет! Хочу подключить файл Evidence.cpp в проект. Пишу в main.cpp: #include&quot;Evidence.cpp&quot; Вот такая ошибка как...

Подключение заголовочного файла - C++
При подключении заголовочного файла вылазит ошибка: Код: #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;iomanip&gt; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru