COM Interface Question

Olaf Meding OlafMeding at compuserve.com
Thu Apr 29 15:30:13 EDT 2004


I am having trouble with the 'User' property (get and put), found near
the bottom of the IDL file listed below.  The user get call seems to
return None, not sure why.

More importantly, is there another way to get the 'IUser' value
required for the user put call?  (Perhaps I need to make the put call
before the get call).

Sorry for the long IDL file, tried to delete a lot of non-relevant
code.  Thanks so much for your help on this one.

Olaf


// ERFile.idl : IDL source for ERFile.dll
//

// This file will be processed by the MIDL tool to
// produce the type library (ERFile.tlb) and marshalling code.

import "oaidl.idl";
import "ocidl.idl";

[
  uuid(bf79b6c5-47be-11d2-bacd-006008060a3a),
  version(1.0),
  helpstring("ERFile 1.0 Type Library")
]
library ERFile
{
  importlib("stdole32.tlb");
  importlib("stdole2.tlb");


  [
    object,
    uuid(bf79b6c7-47be-11d2-bacd-006008060a3a),
    dual,
    helpstring("IERecord Interface"),
    pointer_default(unique),
    nonextensible,
    hidden
  ]
  interface IUser : IDispatch
  {
    [id(1), helpstring("method Login")]
      HRESULT Login([in] BSTR Username, [in] BSTR Password);

    code deleted here

  };


  [
    object,
    uuid(bf79b6c9-47be-11d2-bacd-006008060a3a),
    dual,
    helpstring("IERecord Interface"),
    pointer_default(unique),
    nonextensible,
    hidden
  ]
  interface IERecord : IDispatch
  {
    [propget, id(1), helpstring("property User")]
      HRESULT User([out, retval] IUser* *pVal);

    [propput, id(1), helpstring("property User")]
      HRESULT User([in] IUser *newVal);
        
    code delted here

  };

  code delted here
};



More information about the Python-list mailing list