After receiving the page break information from the add-in, the application re-initiates
the fixed-format export process, beginning with a call to the HrCreateDoc method,
followed by a call to HrAddPageFromEmf for each of the pages given by the page-
break information.
Publisher calls the HrAddOutlineNode method to pass the add-in a structure that
describes a node within a user-navigable outline for the exported document.
C++
The fixed-format export code can use the information passed by the
HrAddOutlineNode method to construct a user-navigable outline of the export
document. From the user's perspective, each node in the outline is represented by some
title text that maps to a particular location within the document.
Each call to HrAddOutlineNode specifies information for a single node in this outline.
Each node is identified by a node ID that is unique within the outline. An ID of 0 is
reserved for the root node. The outline is hierarchical, that is, it has a tree structure in
which each node has a single parent and zero or more child nodes.
The first parameter to HrAddOutlineNode provides the ID of the node that is the parent
of the node being passed in.
Publisher always calls HrAddOutlineNode for a parent node before calling the method
for any of the parent node's children. In other words, the export code is assured of
already having the node information for the node identified by the idNodeParent
parameter. The only exception is the initial call to HrAddOutlineNode that specifies the
root node. For this call, the value of idNodeParent is 0.
Additional information that the export code needs for each node is passed by
HrAddOutlineNode in an MSODOCEXOUTLINENODE structure pointed to by the
pNode parameter.
C++
HrAddOutlineNode
HRESULT HrAddOutlineNode(
    int idNodeParent 
    const MSODOCEXOUTLINENODE* pNode
);    
typedef struct _MsoDocexOutlineNode
{