??xml version="1.0" encoding="utf-8" standalone="yes"?>一区二区三区视频免费在线观看 ,亚洲国产cao,国产九九精品视频http://m.shnenglu.com/codeart/category/14770.htmlcodeArtzh-cnSun, 05 Sep 2010 00:19:10 GMTSun, 05 Sep 2010 00:19:10 GMT60c++操作word接口http://m.shnenglu.com/codeart/archive/2010/08/31/125430.htmlcodeArtcodeArtTue, 31 Aug 2010 11:35:00 GMThttp://m.shnenglu.com/codeart/archive/2010/08/31/125430.htmlhttp://m.shnenglu.com/codeart/comments/125430.htmlhttp://m.shnenglu.com/codeart/archive/2010/08/31/125430.html#Feedback0http://m.shnenglu.com/codeart/comments/commentRss/125430.htmlhttp://m.shnenglu.com/codeart/services/trackbacks/125430.html?】开启word
_ApplicationPtr word_app;
HRESULT hr 
= word_app.CreateInstance("Word.Application", NULL); 
?】新Z个文?br>
COleVariant vTrue((short)TRUE),vFalse((short)FALSE),vOpt((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
DocumentsPtr docs;
_DocumentPtr oDoc;
docs 
= word_app->GetDocuments();
doc 
= docs->Add(vOpt, vOpt, vOpt, vOpt);  
?】设|文的面布局
PageSetupPtr page_setup = doc->GetPageSetup();
page_setup
->PutTopMargin(0);
page_setup
->PutBottomMargin(0);
page_setup
->PutRightMargin(0);
page_setup
->PutLeftMargin(0);
?】插入文?br>
SelectionPtr selection;
selection 
= word_app->GetSelection();
_ParagraphFormatPtr parafmt 
= selection->GetParagraphFormat();
parafmt
->PutLineSpacingRule(wdLineSpaceExactly);
parafmt
->PutLineSpacing(50);
_FontPtr font;
font 
= oSel->GetFont();
font
->PutBold(1);
font
->PutColor(wdColorGreen);
font
->PutSize(20);
font
->PutName(_T("宋体"));
selection
->TypeText("ABC");
oSel
->TypeParagraph();
oSel
->TypeText("12345678901234567890");
oSel
->TypeParagraph();
?】插入文本框
ShapesPtr shapes = doc->GetShapes();
ShapePtr textbox 
=  shapspp->AddTextbox(Office::msoTextOrientationHorizontal, 11100100);
?】文本框中插入文?br>
 1ShapesPtr shapes = doc->GetShapes();
 2ShapePtr textbox =  shapspp->AddTextbox(Office::msoTextOrientationHorizontal, 11100100);
 3TextFramePtr textframe = textbox->GetTextFrame();
 4RangePtr range = textframe->GetTextRange();
 5long insert_before_count = range->Characters->GetCount();
 6range->InsertAfter("TEXT");
 7if (insert_before_count != 1)
 8    range->MoveStart(COleVariant((long)Word::wdCharacter), COleVariant(insert_before_count-1));
 9if(range != 0)
10{
11    _FontPtr font = range->GetFont();
12    font->PutBold(isBold);
13    font->PutItalic(isItalic);
14    font->PutColor((Word::WdColor)FontColor());
15    font->PutSize(FontSize);
16    font->PutName(FontType().c_str());
17}
?】设|文本框的属?br>
1textbox->GetTextFrame()->PutAutoSize(Office::msoAutoShape);
2textbox->GetTextFrame()->PutMarginBottom(0);
3textbox->GetTextFrame()->PutMarginTop(0);
4textbox->GetTextFrame()->PutMarginLeft(0);
5textbox->GetTextFrame()->PutMarginRight(0);
6textbox->GetLine()->PutVisible(Office::msoFalse);
7textbox->GetFill()->PutTransparency(1);
?】插入图片,q里需要注意,必须得先用InlineShape,q样可以把图片插入到指定的页中,不然Q所有的囄只在W一c?br>
 1ShapesPtr shapes = m_WordDoc->GetShapes();
 2InlineShapesPtr inline_shapes = selection_doc->GetRange()->GetInlineShapes();
 3InlineShapePtr inline_shape = inline_shapes->AddPicture(“picture_path”, COleVariant((long)0), COleVariant((long)1));
 4ShapePtr shape = inline_shape->ConvertToShape();
 5shape->PutWidth(width);
 6shape->PutHeight(hehight());
 7shape->PutTop(Y);
 8shape->PutLeft(X);
 9if(shape->GetType() == Office::msoPicture)
10{
11    Word::WrapFormatPtr wrapp = shape->GetWrapFormat();
12    wrapp->PutType(Word::wdWrapBehind);
13}

14
?】插入直U?br>
1ShapesPtr shapes = doc->GetShapes();
2Word::ShapePtr line = shapes->AddLine(x1,y1, x2,y2);
3if (line->GetType() == Office::msoLine)
4{
5    Word::LineFormatPtr LineFmt = line->GetLine();
6    LineFmt->PutWeight(lr->weight_);
7}
?0】插入分隔符
selection->InsertBreak(COleVariant((long)wdColumnBreak));
selection
->InsertBreak(COleVariant((long)wdSectionBreakContinuous));
selection
->InsertBreak(COleVariant((long)wdPageBreak));

?1】设|栏目个数和栏目的宽?br>q里一定要注意add函数的逻辑
1SectionsPtr word_sections = doc->GetSections();
2long num = word_sections->GetCount();
3SectionPtr word_section = word_sections->Item(num-1);
4PageSetupPtr page_setup = word_section->GetPageSetup();
5TextColumnsPtr text_cols = page_setup>GetTextColumns();
6text_cols->PutEvenlySpaced(0);
7text_cols->Add(COleVariant(col_width), COleVariant((long)0), COleVariant((long)false));
?2】插入表?br>
 1TablesPtr tables = oSel->GetTables();    
 2TablePtr table = tables->Add(oSel->GetRange(), 25);
 3    
 4BordersPtr bords = table->GetBorders();
 5bords->PutOutsideLineStyle(wdLineStyleSingle);
 6bords->PutInsideLineStyle(wdLineStyleSingle);
 7for (int i = 1; i<=2; i++)
 8{
 9    for (int j = 1; j<=5; j++)
10    {
11        table->Cell(i,j)->GetRange()->PutText("20");
12    }

13}

14
15CellPtr cell = table->Cell(1,1);
16cell->Merge(table->Cell(1,2));
?3】保存文ƈ退?br>
1COleVariant vTrue((short)TRUE),vFalse((short)FALSE),vOpt((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
2_DocumentPtr active_doc; 
3active_doc = word_app->GetActiveDocument();
4active_doc->SaveAs(COleVariant("D:\\doc1.doc"), 
5                   COleVariant((short)0),
6                   vFalse, COleVariant(""), vTrue, COleVariant(""),
7                   vFalse, vFalse, vFalse, vFalse, vFalse);
8word_app->Quit(vOpt, vOpt, vOpt);
在word优秀的构架中q有许许多多的接口,上面只是举例实现一个普通的文档Q希望对大家有用?

codeArt 2010-08-31 19:35 发表评论
]]>
BEGIN_COM_MAP和END_COM_MAPhttp://m.shnenglu.com/codeart/archive/2010/07/05/119353.htmlcodeArtcodeArtMon, 05 Jul 2010 07:45:00 GMThttp://m.shnenglu.com/codeart/archive/2010/07/05/119353.htmlhttp://m.shnenglu.com/codeart/comments/119353.htmlhttp://m.shnenglu.com/codeart/archive/2010/07/05/119353.html#Feedback0http://m.shnenglu.com/codeart/comments/commentRss/119353.htmlhttp://m.shnenglu.com/codeart/services/trackbacks/119353.html  1 #define BEGIN_COM_MAP(x) public: \
  2     typedef x _ComMapClass; \
  3     static HRESULT WINAPI _Cache(void* pv, REFIID iid, void** ppvObject, DWORD_PTR dw) throw()\
  4 {\
  5     _ComMapClass* p = (_ComMapClass*)pv;\
  6     p->Lock();\
  7     HRESULT hRes = E_FAIL; \
  8     __try \
  9 { \
 10     hRes = ATL::CComObjectRootBase::_Cache(pv, iid, ppvObject, dw);\
 11 } \
 12     __finally \
 13 { \
 14     p->Unlock();\
 15 } \
 16     return hRes;\
 17 }\
 18     IUnknown* _GetRawUnknown() throw() \
 19 { ATLASSERT(_GetEntries()[0].pFunc == _ATL_SIMPLEMAPENTRY); return (IUnknown*)((INT_PTR)this+_GetEntries()->dw); } \
 20     _ATL_DECLARE_GET_UNKNOWN(x)\
 21     HRESULT _InternalQueryInterface(REFIID iid, void** ppvObject) throw() \
 22 return InternalQueryInterface(this, _GetEntries(), iid, ppvObject); } \
 23     const static ATL::_ATL_INTMAP_ENTRY* WINAPI _GetEntries() throw() { \
 24     static const ATL::_ATL_INTMAP_ENTRY _entries[] = { DEBUG_QI_ENTRY(x)
 25 
 26 #ifdef _ATL_DEBUG
 27 #define DEBUG_QI_ENTRY(x) \
 28 {NULL, \
 29     (DWORD_PTR)_T(#x), \
 30     (ATL::_ATL_CREATORARGFUNC*)0},
 31 #else
 32 #define DEBUG_QI_ENTRY(x)
 33 #endif //_ATL_DEBUG
 34 
 35 #define COM_INTERFACE_ENTRY_IMPL(x)\
 36     COM_INTERFACE_ENTRY_IID(_ATL_IIDOF(x), x##Impl<_ComMapClass>)
 37 
 38 #define _ATL_IIDOF(x) __uuidof(x)
 39 
 40 #define COM_INTERFACE_ENTRY_IID(iid, x)\
 41 {&iid,\
 42     offsetofclass(x, _ComMapClass),\
 43     _ATL_SIMPLEMAPENTRY},
 44 
 45 #define offsetofclass(base, derived) ((DWORD_PTR)(static_cast<base*>((derived*)_ATL_PACKING))-_ATL_PACKING)
 46 
 47 #define _ATL_SIMPLEMAPENTRY ((ATL::_ATL_CREATORARGFUNC*)1)
 48 
 49 #define COM_INTERFACE_ENTRY(x)\
 50 {&_ATL_IIDOF(x), \
 51     offsetofclass(x, _ComMapClass), \
 52     _ATL_SIMPLEMAPENTRY},
 53 
 54 #define END_COM_MAP() \
 55     __if_exists(_GetAttrEntries) {{NULL, (DWORD_PTR)_GetAttrEntries, _ChainAttr }, }\
 56 {NULL, 00}}; return &_entries[1];} \
 57     virtual ULONG STDMETHODCALLTYPE AddRef( voidthrow() = 0; \
 58     virtual ULONG STDMETHODCALLTYPE Release( voidthrow() = 0; \
 59     STDMETHOD(QueryInterface)(REFIID, void**throw() = 0;
 60 #else
 61 #define END_COM_MAP() \
 62     __if_exists(_GetAttrEntries) {{NULL, (DWORD_PTR)_GetAttrEntries, _ChainAttr }, }\
 63 {NULL, 00}}; return _entries;} \
 64     virtual ULONG STDMETHODCALLTYPE AddRef( voidthrow() = 0; \
 65     virtual ULONG STDMETHODCALLTYPE Release( voidthrow() = 0; \
 66     STDMETHOD(QueryInterface)(REFIID, void**throw() = 0;
 67 #endif // _ATL_DEBUG
 68 
 69 
 70 //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 71 class d
 72 {
 73 public:
 74     d(){}
 75     typedef x _ComMapClass;
 76     static HRESULT WINAPI _Cache(void* pv, REFIID iid, void** ppvObject, DWORD_PTR dw) throw()\
 77     {
 78         _ComMapClass* p = (_ComMapClass*)pv;
 79         p->Lock();
 80         HRESULT hRes = E_FAIL;
 81         __try
 82         {
 83             hRes = ATL::CComObjectRootBase::_Cache(pv, iid, ppvObject, dw);
 84         }
 85         __finally
 86         {
 87             p->Unlock();
 88         }
 89         return hRes;
 90     }
 91     IUnknown* _GetRawUnknown() throw()
 92     { ATLASSERT(_GetEntries()[0].pFunc == _ATL_SIMPLEMAPENTRY); return (IUnknown*)((INT_PTR)this+_GetEntries()->dw); }
 93     _ATL_DECLARE_GET_UNKNOWN(x)
 94         HRESULT _InternalQueryInterface(REFIID iid, void** ppvObject) throw()
 95     { return InternalQueryInterface(this, _GetEntries(), iid, ppvObject); }
 96     const static ATL::_ATL_INTMAP_ENTRY* WINAPI _GetEntries() throw()
 97     {
 98         static const ATL::_ATL_INTMAP_ENTRY _entries[] =
 99         {
100             {NULL, (DWORD_PTR)_T(#x), (ATL::_ATL_CREATORARGFUNC*)0},
101             {&iid, ((DWORD_PTR)(static_cast<base*>((derived*)_ATL_PACKING))-_ATL_PACKING), ((ATL::_ATL_CREATORARGFUNC*)1)},
102             {&__uuidof(x), ((DWORD_PTR)(static_cast<base*>((derived*)_ATL_PACKING))-_ATL_PACKING), ((ATL::_ATL_CREATORARGFUNC*)1)},
103             __if_exists(_GetAttrEntries) {{NULL, (DWORD_PTR)_GetAttrEntries, _ChainAttr }, }
104             {NULL, 00}
105         };
106         return &_entries[1];
107     }
108     virtual ULONG STDMETHODCALLTYPE AddRef( voidthrow() = 0;
109     virtual ULONG STDMETHODCALLTYPE Release( voidthrow() = 0;
110     STDMETHOD(QueryInterface)(REFIID, void**throw() = 0;
111 }


codeArt 2010-07-05 15:45 发表评论
]]>
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            ŷ߳Ƶ| ŷ˾þô߽ۺ69| avۺ| þþƷһĻ| þó˹| þҹ| ŷҴxxxxx| ŷպһƵ| Ʒպŷһ| õƵ| ޾Ʒþþþþú| Ƶ| þþƷ| ձ| þþþƷһ| ŷƵ| ޵һ| Ļ| ŷԴ| ޾Ʒһ| þֻоƷƵҳ| ŷպ999| ݺɫݺɫۺ91app| ɫ| þù| ŷƷһ| 鶹Ʒtheporn| õڶҳ| һ99| ޾Ʒͬ| | ˾þ| һպƬ| þþƷþ˼˼ | ޹Ʒվ| ¹͵ľƷ | ҹƷ| þһƷ| Ʒwww.| ޾Ʒ߹ۿ| þþƷƵ߲| һɫþۺһ| г˸߳Ƭվ| ŷۺһ| ۺ| ޵һ| Ůպŷ| ޻ɫѵӰ| ޵Ӱ| þþþۺ| ɫӰۺϰ| þľƷ| þþþúݺ50| ۺ| þþùƷһ| һƷ| ƷƬ| һƷavѹۿ| ֲav| ŷƷĻ| ޼СƵ| ŷƵ| ŷ| 뾫Ʒ| ޵Ӱѹۿ| ŷƵһ| ޾Ʒһ| ޾ƷƷԲۿ˳| ŷƷvպƷvƷ | þü| ŷ߹ۿվ| ޹һ| ŷȷ| ŷպһ| ŷպϼƵ| ޾Ʒ߿| 㽶þþƷҹҹ| һƵ߹ۿ| ŷƵһ| ŷxƵ| Ůav| ߲| 鶹޾Ʒ| ŷۺ| ר| þþþþþþ| ݺɫþۺ϶ | 99޾Ʒ| ŷպ| þۺ| ŷһ| ҹպ߹ۿ| þӰԺ| ɫͼۺϾþ| ŷ| 99ƵƷ| ŷһƷ | þþ˳ӰƬһۿ| þˬ| һɫþۺ޾Ʒ| 18ŷ| 99re66ֻоƷ4| ŷxƵ| ޼߹ۿ| ŷëƬ| պһվ| þþþó˾Ʒ| ŷպƵ| ŷvպvv| þþƷ| ŷƬվ| ŮͼƬһ| Ʒһ㽶߿ۿ | ҹҹӰԺŷƷ| һպŷ| һһþۺϺݺϾӰҵ| ɫվ| Ӱ| һһ㽶߾Ʒ| þۺϸ| þþþ| Ʒһѹۿ| Ƶһۿ| ߹ۿ| ŷӰ| ŷxxƵ| ѹۿһ| ۳Ƶ| ҹƷþþ99ȸ| ŷպһ| ˾Ʒ| 99Ʒ99þþþþ÷ | պҹav| þһav| ŷպ| ƷƵƷ| һһþaþþƷţţӰ| һþþþ| ŷպվ| ľƷƵ| ҹƷþþþӰ| ƷƬѹۿ| һɫþüձ88ۺ| һպƷ| ŷػһ| ҹƷ߿| ȾƷƵ| 91þ߲| ŷպɫۺһ| պһ| ҹƷվ| һӰԺ| ŷƷպһ| һþþƷɫa| ŷպۺ| Ůһ| þþƷһ| ŷ| һһþaþþƷۺ һһþaþþƷۺ鶹 | ҹƵһ߹ۿ| ҹƷȫƵ߲| ŷĻ߲| ŷۺ| ҹɫ| ۺϾþþþӰԺ| þþùҹƷ| ޹Ʒva߿| һŮƷŷ| պƷһ| 99þþƷþþþþ| a4yyŷһ| þþüƵ| ޼| ƷרƷ | 99ۺ| ׾ƷһƬ91 | þŷƷֲ| պŷ| ҹƷһӰ | þҹƷvaƵѹۿ| 99re6ֻоƷ| ³ʦһ| ƵŷƷ| þֹƷ| Ůһ| 99| þþþվ| ҹӰӰԺ߹ۿ| һƷþ99| ŷ13d| СѼƷaվ| ޹ŷһͬ| ҹƷ| 99ƷȾþ| õһ| ƷƼƷ| ŷպ߿| þֻƷ| þó18վ| ƵĻ|