рд╢рд░реНрдорд┐рдВрджрдЧреА рдХреА рддреАрди рд▓рд╛рдЗрдиреЗрдВ

рдореИрдВрдиреЗ рд╕реАрдЦрд╛ рдХрд┐ WinWord рдХреИрд╕реЗ рдЪрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдПрдХ рдЕрджреНрднреБрдд рд╕рд╛рдЗрдЯ рдкрд░ рдПрдХ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдЕрдкрдиреА рд▓рд╛рдЗрдиреЗрдВ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░реЗрдВ: http://jmvidal.cse.sc.edu/csce790/PS4/

рдпрд╣ рдХреНрдпрд╛ рд╣реИ, рдЖрдк рдкреВрдЫрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ Microsoft OLE рд╕реНрд╡рдЪрд╛рд▓рди рддрдХрдиреАрдХ рдХрд╛рдлреА рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рд╡рд░реНрдгрд┐рдд рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ 10 рд╡рд░реНрд╖реЛрдВ рд╕реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдФрд░ рдпрд╣рд╛рдВ рдЬреЛ рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд╣реИ рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм DO_WORD рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рдЗрд╕рд╕реЗ рддреНрд░реБрдЯрд┐ рд╣реБрдИ, Word рдмрд╕ рдкреНрд░рд╛рд░рдВрдн рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рд╣реИ рдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реА ++ рдореЗрдВ рд▓рд┐рдЦреА рдЧрдИ рд╣реИ, рд▓реЗрдХрд┐рди, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдПрдордПрдлрд╕реА рддрдХрдиреАрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдХреБрдЫ рднреА рдХрд╛рдо рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕рднреА рдкреБрд╕реНрддрд┐рдХрд╛рдУрдВ рдореЗрдВ рд╕рдВрдХреЗрдд рдХреЗ рдЕрдиреБрд╕рд╛рд░ OLE рдЖрд░рдВрднреАрдХрд░рдг рдХрд╛рд░реНрдп рдЖрдЧреЗ рдмрдврд╝рддрд╛ рд╣реИ? рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрдХреЗрд▓реЗ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ MFC рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣ рдХреИрд╕реЗ рдХрд░реЗрдВ?

рдирддреАрдЬрддрди, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ 2 рдХрд╛рд░реНрдпрдХреНрд░рдо рд╣реИрдВ, рдкрд╣рд▓реЗ рдПрдХ рдореЗрдВ, рдЬреЛ рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рднреВрдорд┐рдХрд╛ рдирд┐рднрд╛рддрд╛ рд╣реИ рдФрд░ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рд╕реНрд░реЛрддреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, DO_WORD рдлрд╝рдВрдХреНрд╢рди рдХреЛ рддреБрд░рдВрдд _tWinMain () рд╕реЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рджреВрд╕рд░реЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ, рдЬреЛ рдКрдкрд░ рджрд┐рдП рдЧрдП рд▓рд┐рдВрдХ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдкрд╣рд▓реЗ MFC рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рд╕рдВрд╡рд╛рдж рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣реА DO_WORD рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдЕрдкреЗрдХреНрд╖рд┐рдд рдерд╛, рдкрд╣рд▓рд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛рдо рдХрд░рдиреЗ рд╕реЗ рдЗрдирдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рджреВрд╕рд░рд╛ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рддрдм рджреВрд╕рд░реЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рдбрд┐рдмрдЧрд░ рдореЗрдВ рдЕрд╡рд░реНрдгрдиреАрдп рд╢рд░реНрдорд┐рдВрджрдЧреА рдХреЗ рдЕрдзреАрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдирддреАрдЬрддрди, рдкрд╣рд▓реЗ рдПрдХ рдХреЛ рдЕрдВрддрд┐рдо рд░реВрдк рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдиреАрдЪреЗ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХреЛрдб рдЖрдкрдХреЗ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдирд┐рдХрд▓рд╛ рд╣реИред рд╢реЛрдордирд┐рдЬрд╝реНрдо рдХреА рдХреЗрд╡рд▓ рддреАрди рдкрдВрдХреНрддрд┐рдпрд╛рдБ рд╣реА рд╡рд┐рдирд╡рд░реНрдб рдФрд░ рдкреВрд░реНрдг рд╡рд┐рдХрд╕рд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХреА рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╢реБрд░реБрдЖрдд рдХреА рдУрд░ рд▓реЗ рдЬрд╛рддреА рд╣реИрдВред

рдлрд╝рд╛рдЗрд▓ wordmain.cpp:
#include "stdafx.h" #include "msword9.h" void DO_WORD(void) { AfxOleInit(); AfxEnableControlContainer(); //start word COleVariant covTrue((short)TRUE), covFALSE((short)FALSE), covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR); _Application app; Documents Docs; _Document Doc; Selection Select; _Font Font; Find myFind; if (!app.CreateDispatch("Word.Application")) { AfxMessageBox ("Couldn't start Word"); return ;//FALSE; } app.SetVisible(TRUE); CString fileName = "C:/MyDocFile.doc"; Docs = app.GetDocuments(); Doc = Docs.Add(covOptional,covOptional,covOptional,covOptional); Select = app.GetSelection(); //Get Current font object and change it Font = Select.GetFont(); Font.SetBold(TRUE); Font.SetItalic(TRUE); Font.SetSize(18); Select.TypeText("Hello this is a Word doc.\n"); /* Doc.SaveAs(COleVariant(fileName), covOptional,covOptional,covOptional, covOptional,covOptional,covFALSE,covOptional, covOptional,covOptional,covOptional); //Doc.Close(covFALSE, covOptional, covOptional); app.Quit(covFALSE,covOptional,covOptional); */ AfxOleTerm(); } extern "C" int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow) { //   AFX_MODULE_STATE* pModuleState = AfxGetModuleState(); pModuleState->m_bDLL = 0; CWinApp *theApp = new CWinApp; DO_WORD(); delete theApp; return 0; } 


Compile.bat рд╕рдВрдХрд▓рди рдлрд╝рд╛рдЗрд▓ Visual Studio 2010 рдФрд░ рдкреБрд░рд╛рдиреЗ Visual Studio 6.0 рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИред рдЗрд╕рдореЗрдВ рд╣рдо рджреЛ рдлрд╛рдЗрд▓ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, wordmain.cpp рдЬреЛ рдКрдкрд░ рджреА рдЧрдИ рд╣реИ, рд╕рд╛рде рд╣реА msword9.cpp рдЬреЛ рд▓рд┐рдВрдХ рдкрд░ рджрд┐рдП рдЧрдП рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ, рдЕрд░реНрдерд╛рддреН Ctrl-W рджрдмрд╛рдХрд░ рдФрд░ рдлрд┐рд░ рд╕реНрд╡рдЪрд╛рд▓рди рдЯреИрдм рдкрд░ Add New Class рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рдлрд┐рд░ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ тАЬ C: \ Program Files \ Microsoft Office \ Office \ msword9.olb "рдФрд░ рдкрд╣рд▓реЗ рд╡рд░реНрдЧреЛрдВ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рд╕рднреА рд╡рд░реНрдЧреЛрдВ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ, рдФрд░ рд╢рд┐рдлреНрдЯ рдкрдХрдбрд╝реЗ рд╣реБрдП, рдХрдХреНрд╖рд╛рдУрдВ рдХреА рд╕рдВрдмрдВрдзрд┐рдд рд╕реВрдЪреА рдХреЗ рдЕрдВрддрд┐рдо рддрддреНрд╡ рдкрд░ред

Compile.bat рд╕рдВрдХрд▓рди рдлрд╝рд╛рдЗрд▓:
 rem Visual Studio 2010 call "C:\Program Files\Microsoft Visual Studio 10.0\VC\BIN\vcvars32.bat" rem Visual Studio 6.0 rem call "C:\Program Files\Microsoft Visual Studio\VC98\BIN\vcvars32.bat" mkdir Release cl /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Fo".\Release\\" /Fd".\Release\\" /FD /c "wordmain.cpp" "msword9.cpp" link /nologo /subsystem:windows /incremental:no /machine:I386 /out:".\Release\wordmain.exe" ".\Release\wordmain.OBJ" ".\Release\msword9.obj" 


UPD: рдореИрдВрдиреЗ рдЗрд╕ рдкреЛрд╕реНрдЯ рдХреЗ рд╕реНрд░реЛрддреЛрдВ рдХреЛ msword9.cpp рд╕рд╣рд┐рдд, statja.rar рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рд╣реИред

Source: https://habr.com/ru/post/In132585/


All Articles