/************************************************************************* ** ** 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); }