From ea98ddb8a1eb848fd3ec65480e8ac79c622277b0 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Fri, 9 May 2008 13:23:52 +0200 Subject: Manual prototypes for COM. --- source4/lib/com/com.h | 69 +++++++++++++++++++++------------------------ source4/lib/com/dcom/dcom.h | 14 ++++++++- 2 files changed, 45 insertions(+), 38 deletions(-) (limited to 'source4') diff --git a/source4/lib/com/com.h b/source4/lib/com/com.h index c4dd872ff7..75d088deb3 100644 --- a/source4/lib/com/com.h +++ b/source4/lib/com/com.h @@ -1,37 +1,32 @@ -/* - Unix SMB/CIFS implementation. - COM standard objects - Copyright (C) Jelmer Vernooij 2004-2005. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -*/ - -#ifndef _COM_H /* _COM_H */ -#define _COM_H - -struct IUnknown_vtable; - -struct com_context -{ - struct dcom_client_context *dcom; - struct event_context *event_ctx; -}; - -typedef struct IUnknown *(*get_class_object_function) (const struct GUID *clsid); - - -#include "lib/com/proto.h" - -#endif /* _COM_H */ +#ifndef __LIB_COM_PROTO_H__ +#define __LIB_COM_PROTO_H__ + +#undef _PRINTF_ATTRIBUTE +#define _PRINTF_ATTRIBUTE(a1, a2) PRINTF_ATTRIBUTE(a1, a2) +/* This file was automatically generated by mkproto.pl. DO NOT EDIT */ + +/* this file contains prototypes for functions that are private + * to this subsystem or library. These functions should not be + * used outside this particular subsystem! */ + + +/* The following definitions come from lib/com/tables.c */ + +struct IUnknown *com_class_by_clsid(struct com_context *ctx, const struct GUID *clsid); +NTSTATUS com_register_running_class(struct GUID *clsid, const char *progid, struct IUnknown *p); + +/* The following definitions come from lib/com/rot.c */ + +struct dcom_interface_p *dcom_get_local_iface_p(struct GUID *ipid); + +/* The following definitions come from lib/com/main.c */ + +WERROR com_init_ctx(struct com_context **ctx, struct event_context *event_ctx); +WERROR com_create_object(struct com_context *ctx, struct GUID *clsid, int num_ifaces, struct GUID *iid, struct IUnknown **ip, WERROR *results); +WERROR com_get_class_object(struct com_context *ctx, struct GUID *clsid, struct GUID *iid, struct IUnknown **ip); +NTSTATUS com_init(void); +#undef _PRINTF_ATTRIBUTE +#define _PRINTF_ATTRIBUTE(a1, a2) + +#endif /* __LIB_COM_PROTO_H__ */ + diff --git a/source4/lib/com/dcom/dcom.h b/source4/lib/com/dcom/dcom.h index 65a4d0f6e9..13881919f7 100644 --- a/source4/lib/com/dcom/dcom.h +++ b/source4/lib/com/dcom/dcom.h @@ -26,7 +26,6 @@ struct dcerpc_pipe; #include "lib/com/com.h" #include "librpc/gen_ndr/orpc.h" -#include "lib/com/dcom/proto.h" struct dcom_client_context { struct cli_credentials *credentials; @@ -38,4 +37,17 @@ struct dcom_client_context { } *object_exporters; }; +struct dcom_client_context *dcom_client_init(struct com_context *ctx, struct cli_credentials *credentials); +struct dcom_object_exporter *object_exporter_by_oxid(struct com_context *ctx, uint64_t oxid); +struct dcom_object_exporter *object_exporter_by_ip(struct com_context *ctx, struct IUnknown *ip); +WERROR dcom_create_object(struct com_context *ctx, struct GUID *clsid, const char *server, int num_ifaces, struct GUID *iid, struct IUnknown ***ip, WERROR *results); +WERROR dcom_get_class_object(struct com_context *ctx, struct GUID *clsid, const char *server, struct GUID *iid, struct IUnknown **ip); +NTSTATUS dcom_get_pipe(struct IUnknown *iface, struct dcerpc_pipe **pp); +NTSTATUS dcom_OBJREF_from_IUnknown(struct OBJREF *o, struct IUnknown *p); +NTSTATUS dcom_IUnknown_from_OBJREF(struct com_context *ctx, struct IUnknown **_p, struct OBJREF *o); +uint64_t dcom_get_current_oxid(void); + +NTSTATUS dcom_register_proxy(struct IUnknown_vtable *proxy_vtable); +struct IUnknown_vtable *dcom_proxy_vtable_by_iid(struct GUID *iid); + #endif /* _DCOM_H */ -- cgit