С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
Yuri K
0 / 0 / 0
Регистрация: 17.12.2007
Сообщений: 18
#1

Работа с Winword - где найти MSWord9.h? - C++

23.12.2007, 18:10. Просмотров 1170. Ответов 5
Метки нет (Все метки)

В MSDN есть код
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
_Application objWord;
 
      // Convenient values declared as ColeVariants.
      COleVariant covTrue((short)TRUE),
                  covFalse((short)FALSE),
                  covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
 
      // Get the IDispatch pointer and attach it to the objWord object.
      if (!objWord.CreateDispatch("Word.Application"))
      {
         AfxMessageBox("Couldn't get Word object.");
         return;
      }
 
      objWord.SetVisible(TRUE);  //This shows the application.
 
      Documents docs(objWord.GetDocuments());
      _Document testDoc;
 
      testDoc.AttachDispatch(docs.Open(
                             COleVariant(fIn,VT_BSTR),
                             covFalse,    // Confirm Conversion.
                             covFalse,    // ReadOnly.
                             covFalse,    // AddToRecentFiles.
                             covOptional, // PasswordDocument.
                             covOptional, // PasswordTemplate.
                             covFalse,    // Revert.
                             covOptional, // WritePasswordDocument.
                             covOptional, // WritePasswordTemplate.
                             covOptional) // Format. // Last argument for Word 97
                                covOptional, // Encoding // New for Word 2000/2002
                                covTrue,     // Visible
                                covOptional, // OpenConflictDocument
                                covOptional, // OpenAndRepair
                                (long)0,     // DocumentDirection wdDocumentDirection LeftToRight
                                covOptional  // NoEncodingDialog
                                )  // Close Open parameters
                                ); // Close AttachDispatch(…)
но требуют включить msword9.h, которого в инклюдс я не обнаружил...
Кто знает, где его взять?
Или знает, где взять пример на открытие и сохранение док. файла, не требующего этого файла!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.12.2007, 18:10
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Работа с Winword - где найти MSWord9.h? (C++):

Где найти Двунаправленное кольцо? у кого есть такое? или есть ссылки где их можно найти? - C++
Можете пожалуйста скинуть примеры задач с Двунаправленным кольцом, или хотябы где их искать. Буду очень благодарен!!!!!!!

Где ошибка? Работа с класами - C++
#include <iostream.h> #include <assert.h> using namespace std; class complex { double re,im; public:

Трай , где неправильная работа с памятью? - C++
class Trie { struct Node { int count ; Node **r; Node() { count = 0; ...

'Ошибка в Winword.ехе. Winword будет закрыт.' - VBA
Помогите!!!... Написала макрос, который вызываю во время открытия документа, но когда открываю документ, то получаю сообщение 'Ошибка в...

AppHangB1 в WINWORD.EXE - MS Word
Привет, Всем! Помогите пжл решить проблему с вордом. При редактировании документа приложение зависает и выдает ошибку: Описание: ...

Как активизировать макрос WinWord - Visual Basic
Как можно запустить макрос в открытом ранее WinWord'е из программ на VB, Delphi или FiveWin (пробовал через DDE, но не нашел подходящих ...

5
VitSoft
0 / 0 / 0
Регистрация: 25.09.2007
Сообщений: 92
24.12.2007, 02:01 #2
Hi !!

используйте *.tlb
классВизард >> AddClass >> From type library >> идете в папку офис,
там находите файл ворда (забыл название) и подключаете.
Будет создан так нужный Вам *.h

Good luck VitSoft
http://www.development.efficientit.com
0
Yuri K
0 / 0 / 0
Регистрация: 17.12.2007
Сообщений: 18
24.12.2007, 17:12  [ТС] #3
Спасибо за ответ на пред. вопрос. Есть ещё один.
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
BOOL WordExec(BSTR fIn) {
_Application objWord;
 
      // Convenient values declared as ColeVariants.
      COleVariant covTrue((short)TRUE),
                  covFalse((short)FALSE),
                  covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
 
      // Get the IDispatch pointer and attach it to the objWord object.
      if (!objWord.CreateDispatch("Word.Application"))
      {
         AfxMessageBox("Couldn't get Word object.");
         return FALSE;
      }
 
      objWord.SetVisible(TRUE);  //This shows the application.
 
      Documents docs(objWord.GetDocuments());
      _Document testDoc;
      testDoc.AttachDispatch(docs.Open(
                             COleVariant(fIn,VT_BSTR),
                             covFalse,    // Confirm Conversion.
                             covTrue,     // ReadOnly.
                             covFalse,    // AddToRecentFiles.
                             covOptional, // PasswordDocument.
                             covOptional, // PasswordTemplate.
                             covFalse,    // Revert.
                             covOptional, // WritePasswordDocument.
                             covOptional, // WritePasswordTemplate.
                             covOptional, // Format. // Last argument for Word 97
                             covOptional, // Encoding // New for Word 2000/2002
                             covFalse    // Visible
                                )  // Close Open parameters
                                ); // Close AttachDispatch(…)
}
VC выдаёт
error C2665: 'COleVariant::COleVariant' : none of the 17 overloads can convert parameter 1 from type 'unsigned short *'
Как это понять и что сделать?
0
b_lol_b
0 / 0 / 0
Регистрация: 01.11.2007
Сообщений: 21
27.12.2007, 16:14 #4
констр. COleVariant::COleVariant(LPCTSTR lpstr,VARTYPE var);

где var - или VT_BSTR для (Unicode) или BSTRT (Ansii)
Попробуй свой fIn определить как LPCTSTR;
С уважением...
0
b_lol_b
0 / 0 / 0
Регистрация: 01.11.2007
Сообщений: 21
27.12.2007, 16:40 #5
а вообще я посмотрел твой пример...В следующем виде он работает:
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
COleVariant covTrue((short)TRUE),
            covFalse((short)FALSE),   
            covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);   
    
    if(!objWord.CreateDispatch("Word.Application.9"))
    {
        AfxMessageBox("bla..bla..bla");
        return FALSE;
    }
    objWord.SetVisible(TRUE);
 
    Documents docs(objWord.GetDocuments());
   _Document testDoc;
    LPCTSTR fIn = "...";
    testDoc.AttachDispatch(docs.Open(
               COleVariant(fIn,VT_BSTR),
               covFalse,  // Confirm Conversion.
               covFalse,  // ReadOnly.
               covFalse,  // AddToRecentFiles.
               covOptional, // PasswordDocument.
               covOptional, // PasswordTemplate.
               covFalse,  // Revert.
               covOptional, // WritePasswordDocument.
               covOptional, // WritePasswordTemplate.
               covOptional, // Format. // Last argument for Word 97
                covOptional, // Encoding // New for Word 2000/2002
                covTrue   // Visible
                //covOptional, // OpenConflictDocument
                //covOptional, // OpenAndRepair
                //(long)0,   // DocumentDirection wdDocumentDirection LeftToRight
                //covOptional // NoEncodingDialog
                ) // Close Open parameters
                ); // Close AttachDispatch(…)
0
Yuri K
0 / 0 / 0
Регистрация: 17.12.2007
Сообщений: 18
27.12.2007, 17:07  [ТС] #6
Спасибо!
Сам уже поменял BSTR -> PCHAR.
Но неужели BSTR нельзя использовать для OLE функций?
0
27.12.2007, 17:07
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.12.2007, 17:07
Привет! Вот еще темы с ответами:

WINWORD.exe 12.0.6541.5000 - Системный софт
Подскажите пожалуйста где,кроме оф.сайта Microsoft можно найти WINWORD.exe 12.0.6541.5000?

Работа с MS SQL Server 2014 - Где найти документацию, коннекторы? - C (Си)
Здравствуйте! Возможно ли? Где найти документацию, коннекторы? Спасибо!

Остается процесс WINWORD.EXE на серваке - C# ASP.NET
После исполнения Set WordApp = Server.CreateObject('word.application') .... изменяем всячески кладем тут же... для отдачи...

Как в WinWord выполнить макрос из файла? - VBA
Как из макроса WinWord в процессе его выполнения загрузить из файла другой макрос и передать ему управление ?


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

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