windows-nt/Source/XPSP1/NT/com/oleutest/letest/outline/outlname.c

113 lines
2.5 KiB
C
Raw Normal View History

2020-09-26 03:20:57 -05:00
/*************************************************************************
**
** OLE 2 Sample Code
**
** outlname.c
**
** This file contains OutlineName functions.
**
** (c) Copyright Microsoft Corp. 1992 - 1993 All Rights Reserved
**
*************************************************************************/
#include "outline.h"
OLEDBGDATA
/* OutlineName_SetName
* -------------------
*
* Change the string of a name.
*/
void OutlineName_SetName(LPOUTLINENAME lpOutlineName, LPSTR lpszName)
{
lstrcpy(lpOutlineName->m_szName, lpszName);
}
/* OutlineName_SetSel
* ------------------
*
* Change the line range of a name.
*/
void OutlineName_SetSel(LPOUTLINENAME lpOutlineName, LPLINERANGE lplrSel, BOOL fRangeModified)
{
#if defined( OLE_SERVER )
// Call OLE server specific function instead
ServerName_SetSel((LPSERVERNAME)lpOutlineName, lplrSel, fRangeModified);
#else
lpOutlineName->m_nStartLine = lplrSel->m_nStartLine;
lpOutlineName->m_nEndLine = lplrSel->m_nEndLine;
#endif
}
/* OutlineName_GetSel
* ------------------
*
* Retrieve the line range of a name.
*/
void OutlineName_GetSel(LPOUTLINENAME lpOutlineName, LPLINERANGE lplrSel)
{
lplrSel->m_nStartLine = lpOutlineName->m_nStartLine;
lplrSel->m_nEndLine = lpOutlineName->m_nEndLine;
}
/* OutlineName_SaveToStg
* ---------------------
*
* Save a name into a storage
*/
BOOL OutlineName_SaveToStg(LPOUTLINENAME lpOutlineName, LPLINERANGE lplrSel, UINT uFormat, LPSTREAM lpNTStm, BOOL FAR* lpfNameSaved)
{
HRESULT hrErr = NOERROR;
ULONG nWritten;
*lpfNameSaved = FALSE;
/* if no range given or if the name is completely within the range,
** write it out.
*/
if (!lplrSel ||
((lplrSel->m_nStartLine <= lpOutlineName->m_nStartLine) &&
(lplrSel->m_nEndLine >= lpOutlineName->m_nEndLine))) {
hrErr = lpNTStm->lpVtbl->Write(
lpNTStm,
lpOutlineName,
sizeof(OUTLINENAME),
&nWritten
);
*lpfNameSaved = TRUE;
}
return ((hrErr == NOERROR) ? TRUE : FALSE);
}
/* OutlineName_LoadFromStg
* -----------------------
*
* Load names from an open stream of a storage. if the name already
* exits in the OutlineNameTable, it is NOT modified.
*
* Returns TRUE is all ok, else FALSE.
*/
BOOL OutlineName_LoadFromStg(LPOUTLINENAME lpOutlineName, LPSTREAM lpNTStm)
{
HRESULT hrErr = NOERROR;
ULONG nRead;
hrErr = lpNTStm->lpVtbl->Read(
lpNTStm,
lpOutlineName,
sizeof(OUTLINENAME),
&nRead
);
return ((hrErr == NOERROR) ? TRUE : FALSE);
}