summaryrefslogtreecommitdiffstats
path: root/private/ole32/stg/ref/pdffuncs.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'private/ole32/stg/ref/pdffuncs.cxx')
-rw-r--r--private/ole32/stg/ref/pdffuncs.cxx79
1 files changed, 79 insertions, 0 deletions
diff --git a/private/ole32/stg/ref/pdffuncs.cxx b/private/ole32/stg/ref/pdffuncs.cxx
new file mode 100644
index 000000000..73848369d
--- /dev/null
+++ b/private/ole32/stg/ref/pdffuncs.cxx
@@ -0,0 +1,79 @@
+//+--------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1992 - 1992.
+//
+// File: pdffuncs.cxx
+//
+// Contents: PDocFile static member functions
+//
+//---------------------------------------------------------------
+
+#include <dfhead.cxx>
+
+
+
+
+//+--------------------------------------------------------------
+//
+// Member: PDocFile::ExcludeEntries, public
+//
+// Synopsis: Excludes the given entries
+//
+// Arguments: [snbExclude] - Entries to exclude
+//
+// Returns: Appropriate status code
+//
+//---------------------------------------------------------------
+
+
+SCODE PDocFile::ExcludeEntries(PDocFile *pdf,
+ SNBW snbExclude)
+{
+ PDocFileIterator *pdfi;
+ PSStream *psstChild;
+ PDocFile *pdfChild;
+ SCODE sc;
+ SIterBuffer ib;
+
+ olDebugOut((DEB_ITRACE, "In PDocFile::ExcludeEntries(%p)\n",
+ snbExclude));
+ olChk(pdf->GetIterator(&pdfi));
+ for (;;)
+ {
+ if (FAILED(pdfi->BufferGetNext(&ib)))
+ break;
+ if (NameInSNB(&ib.dfnName, snbExclude) == S_OK)
+ {
+ switch(REAL_STGTY(ib.type))
+ {
+ case STGTY_STORAGE:
+ olChkTo(EH_pwcsName, pdf->GetDocFile(&ib.dfnName, DF_READ |
+ DF_WRITE, ib.type,
+ &pdfChild));
+ olChkTo(EH_Get, pdfChild->DeleteContents());
+ pdfChild->Release();
+ break;
+ case STGTY_STREAM:
+ olChkTo(EH_pwcsName, pdf->GetStream(&ib.dfnName, DF_WRITE,
+ ib.type, &psstChild));
+ olChkTo(EH_Get, psstChild->SetSize(0));
+ psstChild->Release();
+ break;
+ }
+ }
+ }
+ pdfi->Release();
+ olDebugOut((DEB_ITRACE, "Out ExcludeEntries\n"));
+ return S_OK;
+
+EH_Get:
+ if (REAL_STGTY(ib.type))
+ pdfChild->Release();
+ else
+ psstChild->Release();
+EH_pwcsName:
+ pdfi->Release();
+EH_Err:
+ return sc;
+}