How to implement COM IMessageFilter::RetryRejectedCall to cause COM to return RPC_E_CALL_REJECTED? RRS feed

  • Question

  • I am implementing the COM IMessageFilter interface and I am confused about the return value of RetryRejectedCall.

    The documentation states that it returns a DWORD which is unsigned but then says to return -1 to get COM to return RPC_E_CALL_REJECTED.

    I am writing the code in Lisp using a Lisp-C FFI and I don't want to rely on the Lisp compiler just doing the right thing in converting  -1 to a DWORD (like maybe the Microsoft C++ compiler does?).  I think I need to return something unsigned, so what unsigned value do I return from RetryRejectedCall to ensure that COM returns RPC_E_CALL_REJECTED?

    Do I just return 0x80000001 ? Or maybe 0xFFFFFFFF would do it as this ensures that what would be the negative bit, if it was a signed return value, is definitely set ?


    Wednesday, November 13, 2013 9:56 AM


All replies