// WordClient.cpp : Defines the class behaviors for the application.
//

#include "stdafx.h"
#include "WordClient.h"
#include "WordClientDlg.h"
#include "msword9.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CWordClientApp

BEGIN_MESSAGE_MAP(CWordClientApp, CWinApp)
  //{{AFX_MSG_MAP(CWordClientApp)
    // NOTE - the ClassWizard will add and remove mapping macros here.
    //    DO NOT EDIT what you see in these blocks of generated code!
  //}}AFX_MSG
  ON_COMMAND(ID_HELP, CWinApp::OnHelp)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CWordClientApp construction

CWordClientApp::CWordClientApp()
{
  // TODO: add construction code here,
  // Place all significant initialization in InitInstance
}

/////////////////////////////////////////////////////////////////////////////
// The one and only CWordClientApp object

CWordClientApp theApp;

/////////////////////////////////////////////////////////////////////////////
// CWordClientApp initialization

BOOL CWordClientApp::InitInstance()
{
  AfxOleInit();
  AfxEnableControlContainer();

  // Standard initialization
  // If you are not using these features and wish to reduce the size
  //  of your final executable, you should remove from the following
  //  the specific initialization routines you do not need.

#ifdef _AFXDLL
  Enable3dControls();     // Call this when using MFC in a shared DLL
#else
  Enable3dControlsStatic(); // Call this when linking to MFC statically
#endif

  CWordClientDlg dlg;
  m_pMainWnd = &dlg;
  int nResponse = dlg.DoModal();

  //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");
  Select.TypeText(dlg.m_text);

  Doc.SaveAs(COleVariant(fileName),
    covOptional,covOptional,covOptional,
    covOptional,covOptional,covFALSE,covOptional,
    covOptional,covOptional,covOptional);

  //Doc.Close(covFALSE, covOptional, covOptional);
  app.Quit(covFALSE,covOptional,covOptional);


  if (nResponse == IDOK)
  {
    // TODO: Place code here to handle when the dialog is
    //  dismissed with OK
  }
  else if (nResponse == IDCANCEL)
  {
    // TODO: Place code here to handle when the dialog is
    //  dismissed with Cancel
  }
  AfxOleTerm();
  // Since the dialog has been closed, return FALSE so that we exit the
  //  application, rather than start the application's message pump.
  return FALSE;
}