mirror of
https://github.com/samba-team/samba.git
synced 2025-12-16 00:23:52 +03:00
r3689: Large number of COM updates:
- Work on server side and local COM support (should work, just no
example classes yet)
- Use vtables so that local and remote calls can be used transparently
- Generate 'proxies and stubs' rather then heavily modified code in client.pm and server.pm. proxies (client side code) are generated in proxy.pm, stubs (server side dispatchers) are generated in stubs.pm
- Support registering classes and interfaces
- DCOM interfaces no longer have to be in the same IDL file as their
base interface, which will allow us to split up dcom.idl
This commit is contained in:
committed by
Gerald (Jerry) Carter
parent
ab12134286
commit
7466947a23
@@ -25,7 +25,6 @@
|
||||
#include "rpc_server/common/common.h"
|
||||
#include "librpc/gen_ndr/ndr_remact.h"
|
||||
#include "librpc/gen_ndr/ndr_oxidresolver.h"
|
||||
#include "rpc_server/dcom/dcom.h"
|
||||
|
||||
struct dcom_interface_pointer *dcom_interface_pointer_by_ipid(struct GUID *ipid)
|
||||
{
|
||||
@@ -38,9 +37,9 @@ struct dcom_interface_pointer *dcom_interface_pointer_by_ipid(struct GUID *ipid)
|
||||
*/
|
||||
static WERROR RemoteActivation(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, struct RemoteActivation *r)
|
||||
{
|
||||
struct IClassFactory_CreateInstance *cr;
|
||||
struct IUnknown_Release *ur;
|
||||
struct dcom_interface *o;
|
||||
struct CreateInstance *cr;
|
||||
struct Release *ur;
|
||||
struct dcom_interface_p *o;
|
||||
int i;
|
||||
|
||||
/* FIXME: CoGetClassObject() */
|
||||
@@ -61,9 +60,9 @@ static WERROR RemoteActivation(struct dcesrv_call_state *dce_call, TALLOC_CTX *m
|
||||
r->out.hr = cr->out.result;
|
||||
|
||||
for (i = 0; i < r->in.Interfaces; i++) {
|
||||
struct IUnknown_QueryInterface rr;
|
||||
struct QueryInterface rr;
|
||||
rr.in.iid = &r->in.pIIDs[i];
|
||||
dcerpc_IUnknown_QueryInterface(o, mem_ctx, &rr);
|
||||
dcom_IUnknown_QueryInterface(o, mem_ctx, &rr);
|
||||
ZERO_STRUCT(r->out.ifaces[i]);
|
||||
r->out.results[i] = rr.out.result;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user