/*
 * This file is part of the LibreOffice project.
 *
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * This file incorporates work covered by the following license notice:
 *
 *   Licensed to the Apache Software Foundation (ASF) under one or more
 *   contributor license agreements. See the NOTICE file distributed
 *   with this work for additional information regarding copyright
 *   ownership. The ASF licenses this file to you under the Apache
 *   License, Version 2.0 (the "License"); you may not use this file
 *   except in compliance with the License. You may obtain a copy of
 *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
 */

interface Documents
{
    SID_NEWDOC // ole(opt) api(final/play/rec)
    [
        ExecMethod = NewDocExec_Impl ;
    ]
    SID_OPENDOC // ole(no) api(final/play/rec)
    [
        ExecMethod = OpenDocExec_Impl ;
    ]
    SID_OPENREMOTE
    [
        ExecMethod = OpenRemoteExec_Impl ;
    ]
    SID_SIGNPDF
    [
        ExecMethod = SignPDFExec_Impl ;
    ]
    SID_OPENHYPERLINK // ole(no) api(final/play/rec)
    [
        ExecMethod = OpenDocExec_Impl ;
    ]
    SID_OPENURL // ole(no) api(no)
    [
        ExecMethod = OpenDocExec_Impl ;
    ]
    SID_OPENTEMPLATE // ole(no) api(final/play/rec)
    [
        ExecMethod = OpenDocExec_Impl ;
    ]
    SID_CLOSEDOCS // ole(req) api(final/play/rec)
    [
        ExecMethod = MiscExec_Impl ;
        StateMethod = MiscState_Impl ;
    ]
    SID_SAVEDOCS // ole(no) api(final/play/rec)
    [
        ExecMethod = MiscExec_Impl ;
        StateMethod = MiscState_Impl ;
    ]
}


interface Document
{
    SID_DOCTITLE // ole(opt) api(final/norec)
    [
        ExecMethod = ExecProps_Impl ;
        StateMethod = StateProps_Impl ;
    ]
    SID_DOCPATH // ole(req) api(final/play/norec)
    [
        ExecMethod = ExecProps_Impl ;
        StateMethod = StateProps_Impl ;
    ]
    SID_DOCFULLNAME // ole(req) api(final/play/norec)
    [
        ExecMethod = ExecProps_Impl ;
        StateMethod = StateProps_Impl ;
    ]
    SID_CLOSEDOC // ole(req) api(final/play/rec)
    [
        ExecMethod = ExecFile_Impl ;
        StateMethod = GetState_Impl ;
    ]
    SID_CLOSING // ole(no) api(final/play/norec)
    [
        StateMethod = StateProps_Impl ;
    ]
    SID_ACTIVATE // ole(no) api(final/play/norec)
    [
        ExecMethod = ExecView_Impl ;
        StateMethod = StateView_Impl ;
    ]
}

interface OfficeDocument : Document
{
    SID_DOCINFO_AUTHOR // ole(opt) api(todo)
    [
        ExecMethod = ExecProps_Impl ;
        StateMethod = StateProps_Impl ;
    ]
    SID_DOCINFO_COMMENTS // ole(opt) api(todo)
    [
        ExecMethod = ExecProps_Impl ;
        StateMethod = StateProps_Impl ;
    ]
    SID_DOCINFO_KEYWORDS // ole(opt) api(todo)
    [
        ExecMethod = ExecProps_Impl ;
        StateMethod = StateProps_Impl ;
    ]
    SID_DOC_READONLY // ole(opt) api(final/play/norec)
    [
        ExecMethod = ExecProps_Impl ;
        StateMethod = StateProps_Impl ;
    ]
    SID_DOC_SAVED // ole(req) api(final/play/norec)
    [
        ExecMethod = ExecProps_Impl ;
        StateMethod = StateProps_Impl ;
    ]
    SID_DOC_MODIFIED // ole(no) api(final/noplay/norec)
    [
        StateMethod = GetState_Impl ;
    ]
    SID_MODIFIED // ole(no) api(final/noplay/norec)
    [
        ExecMethod = ExecProps_Impl ;
        StateMethod = GetState_Impl ;
    ]
    SID_SAVESIMPLE []
    SID_SAVEDOC // ole(req) api(final/play/rec)
    [
        ExecMethod = ExecFile_Impl ;
        StateMethod = GetState_Impl ;
    ]
    SID_SAVEASDOC // ole(req) api(final/play/rec)
    [
        ExecMethod = ExecFile_Impl ;
        StateMethod = GetState_Impl ;
    ]
    SID_SAVEACOPY // ole(req) api(final/play/rec)
    [
        ExecMethod = ExecFile_Impl ;
        StateMethod = GetState_Impl ;
    ]
    SID_SAVEASREMOTE // ole(req) api(final/play/rec)
    [
        ExecMethod = ExecFile_Impl ;
        StateMethod = GetState_Impl ;
    ]
    SID_DOCTEMPLATE // ole(no) api(final/play/rec)
    [
        ExecMethod = ExecFile_Impl ;
        StateMethod = GetState_Impl ;
    ]
    SID_PRINTDOC //ole(req) api(final/play/norec)
    [
        ExecMethod = PrintExec_Impl ;
        StateMethod = NoState ;
    ]
    SID_PRINTOUT // ole(opt) api(final/play/norec)
    [
        ExecMethod = PrintExec_Impl ;
        StateMethod = PrintState_Impl ;
    ]
    SID_DOC_LOADING // ole(no) api(final/play/norec)
    [
        StateMethod = StateProps_Impl ;
    ]
    SID_IMG_LOADING // ole(no) api(final/play/norec)
    [
        StateMethod = StateProps_Impl ;
    ]
    SID_VERSION
    [
        ExecMethod = ExecFile_Impl;
        StateMethod = GetState_Impl;
    ]
    SID_SIGNATURE
    [
        ExecMethod = ExecFile_Impl;
        StateMethod = GetState_Impl;
    ]
    SID_MACRO_SIGNATURE
    [
        ExecMethod = ExecFile_Impl;
        StateMethod = GetState_Impl;
    ]
    SID_CHECKOUT
    [
        ExecMethod = ExecFile_Impl;
        StateMethod = GetState_Impl;
    ]
    SID_CANCELCHECKOUT
    [
        ExecMethod = ExecFile_Impl;
        StateMethod = GetState_Impl;
    ]
    SID_CHECKIN
    [
        ExecMethod = ExecFile_Impl;
        StateMethod = GetState_Impl;
    ]
    SID_DOC_REPAIR
    [
        StateMethod = GetState_Impl;
    ]
}



shell SfxObjectShell
{
    import OfficeDocument;

    SID_DOCINFO // ole(no) api(final/play)
    [
        ExecMethod = ExecFile_Impl ;
        StateMethod = GetState_Impl ;
    ]
    SID_DOCINFO_TITLE // ole(no) api(final/play/rec)
    [
        StateMethod = GetState_Impl ;
    ]
    SID_EXPORTDOC
    [
        ExecMethod = ExecFile_Impl ;
        StateMethod = GetState_Impl ;
    ]
    SID_EXPORTDOCASPDF
    [
        ExecMethod = ExecFile_Impl ;
        StateMethod = GetState_Impl ;
    ]
    SID_DIRECTEXPORTDOCASPDF
    [
        ExecMethod = ExecFile_Impl ;
        StateMethod = GetState_Impl ;
    ]
    SID_EXPORTDOCASEPUB
    [
        ExecMethod = ExecFile_Impl ;
        StateMethod = GetState_Impl ;
    ]
    SID_DIRECTEXPORTDOCASEPUB
    [
        ExecMethod = ExecFile_Impl ;
        StateMethod = GetState_Impl ;
    ]
    SID_SIGNATURE
    [
        ExecMethod = ExecFile_Impl;
        StateMethod = GetState_Impl;
    ]
    SID_MACRO_SIGNATURE
    [
            ExecMethod = ExecFile_Impl;
            StateMethod = GetState_Impl;
    ]
} ;