403Webshell
Server IP : 123.56.80.60  /  Your IP : 216.73.216.78
Web Server : Apache/2.4.54 (Win32) OpenSSL/1.1.1s PHP/7.4.33 mod_fcgid/2.3.10-dev
System : Windows NT iZhx3sob14hnz7Z 10.0 build 14393 (Windows Server 2016) i586
User : SYSTEM ( 0)
PHP Version : 7.4.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  C:/Program Files/python/Lib/site-packages/win32com/include/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : C:/Program Files/python/Lib/site-packages/win32com/include/PythonCOMRegister.h
// Support for PythonCOM and its extensions to register the interfaces,
// gateways and IIDs it supports.
//
// The module can simply declare an array of type PyCom_InterfaceSupportInfo, then
// use the macros to populate it.
//
// See Register.cpp and AXScript.cpp for examples on its use.

#ifndef __PYTHONCOMREGISTER_H__
#define __PYTHONCOMREGISTER_H__

#include "PythonCOMServer.h"  // Need defns in this file...

typedef struct {
    const GUID *pGUID;             // The supported IID - required
    const char *interfaceName;     // Name of the interface - required
    const char *iidName;           // Name of the IID that goes into the dict. - required
    PyTypeObject *pTypeOb;         // the type object for client PyI* side - NULL for server only support.
    pfnPyGatewayConstructor ctor;  // Gateway (PyG*) interface constructor - NULL for client only support

} PyCom_InterfaceSupportInfo;

#define PYCOM_INTERFACE_IID_ONLY(ifc)                   \
    {                                                   \
        &IID_I##ifc, "I" #ifc, "IID_I" #ifc, NULL, NULL \
    }
#define PYCOM_INTERFACE_CLSID_ONLY(ifc)                        \
    {                                                          \
        &CLSID_##ifc, "CLSID_" #ifc, "CLSID_" #ifc, NULL, NULL \
    }
#define PYCOM_INTERFACE_CATID_ONLY(ifc)                        \
    {                                                          \
        &CATID_##ifc, "CATID_" #ifc, "CATID_" #ifc, NULL, NULL \
    }
#define PYCOM_INTERFACE_CLIENT_ONLY(ifc)                           \
    {                                                              \
        &IID_I##ifc, "I" #ifc, "IID_I" #ifc, &PyI##ifc::type, NULL \
    }
#define PYCOM_INTERFACE_SERVER_ONLY(ifc)                                        \
    {                                                                           \
        &IID_I##ifc, "I" #ifc, "IID_I" #ifc, NULL, GET_PYGATEWAY_CTOR(PyG##ifc) \
    }
#define PYCOM_INTERFACE_FULL(ifc)                                                          \
    {                                                                                      \
        &IID_I##ifc, "I" #ifc, "IID_I" #ifc, &PyI##ifc::type, GET_PYGATEWAY_CTOR(PyG##ifc) \
    }

// Versions that use __uuidof() to get the IID, which seems to avoid the need
// to link with a lib holding the IIDs.  Note that almost all extensions
// build with __uuidof() being the default; the build failed at 'shell' - so
// we could consider making this the default and making the 'explicit' version
// above the special case.
#define PYCOM_INTERFACE_IID_ONLY_UUIDOF(ifc)                  \
    {                                                         \
        &__uuidof(I##ifc), "I" #ifc, "IID_I" #ifc, NULL, NULL \
    }
#define PYCOM_INTERFACE_CLIENT_ONLY_UUIDOF(ifc)                          \
    {                                                                    \
        &__uuidof(I##ifc), "I" #ifc, "IID_I" #ifc, &PyI##ifc::type, NULL \
    }
#define PYCOM_INTERFACE_SERVER_ONLY_UUIDOF(ifc)                                       \
    {                                                                                 \
        &__uuidof(I##ifc), "I" #ifc, "IID_I" #ifc, NULL, GET_PYGATEWAY_CTOR(PyG##ifc) \
    }
#define PYCOM_INTERFACE_FULL_UUIDOF(ifc)                                                         \
    {                                                                                            \
        &__uuidof(I##ifc), "I" #ifc, "IID_I" #ifc, &PyI##ifc::type, GET_PYGATEWAY_CTOR(PyG##ifc) \
    }

// Prototypes for the register functions

// Register a PythonCOM extension module
PYCOM_EXPORT int PyCom_RegisterExtensionSupport(PyObject *dict, const PyCom_InterfaceSupportInfo *pInterfaces,
                                                int numEntries);

// THESE SHOULD NO LONGER BE USED.  Instead, use the functions above passing an
// array of PyCom_InterfaceSupportInfo objects.

PYCOM_EXPORT int PyCom_RegisterClientType(PyTypeObject *typeOb, const GUID *guid);

HRESULT PYCOM_EXPORT PyCom_RegisterGatewayObject(REFIID iid, pfnPyGatewayConstructor ctor, const char *interfaceName);
PYCOM_EXPORT int PyCom_IsGatewayRegistered(REFIID iid);

#endif /* __PYTHONCOMREGISTER_H__ */

Youez - 2016 - github.com/yon3zu
LinuXploit