Init-Methode – CPapFile

Das folgende Codebeispiel zeigt, wie CPapFile initialisiert wird.

Dieses Beispiel ist die CPapFile Init-Methode aus "Papfile.cpp".

HRESULT CPapFile::Init(
                      TCHAR* pszAppFileName,
                      IPaper* pIPaper)
  {
    HRESULT hr = E_FAIL;

    if (NULL != pIPaper)
    {
      // Keep CPapFile copy of pIPaper. Thus AddRef it.
      // Released in Destructor.
      m_pIPaper = pIPaper;
      m_pIPaper->AddRef();

      if (NULL != pszAppFileName)
      {
        // Set the default current file name.
        StringCchCopy(m_szCurFileName, sizeof(m_szCurFileName), pszAppFileName);

        hr = NOERROR;
      }
    }

    return (hr);
  }
  

Der parameter pszAppFileName wird verwendet, um CPapFile mit einem Standarddateinamen für alle nachfolgenden Lade- oder Speichervorgänge zu initialisieren. Eine Kopie wird im Member m _ szCurFileName für das erste Laden beibehalten. In StoClien wird eine solche Auslastung versucht, wenn die Anwendung zum ersten Mal gestartet wird, nachdem CPapFile mit pszAppFileName initialisiert wurde, der "STOCLIEN. PAP". Dieser Dateiname wurde in einem CGuiPaper-Konstruktor erstellt, indem der name des aktuell ausgeführten Moduls erhalten wurde. (Die Win32-Funktion GetModuleFileName wird aufgerufen.)

Der pIPaper-Parameter ist für CPapFile erforderlich, da er diese Schnittstelle für das COPaper-Objekt verwendet, um seine Lade- und Speichervorgänge durchzuführen. AddRef wird für diese gespeicherte Kopie von pIPaper in Übereinstimmung mit COM-Regeln aufgerufen. Das entsprechende Release wird im CPapFile-Destruktor aufgerufen.