Microsoft DirectX 8.0

Miscellaneous Helper Functions

Declaration: Wxutil.h.

EqualPinsChecks if two pins are on the same object.
Int64x32Div32 Implements ((a*b)+rnd)/c for 64-bit values of a.
IsEqualObjectChecks if two interfaces are on the same object.
llMulDiv Implements ((a*b)+rnd)/c for 32-bit values of a.
WaitDispatchingMessagesWaits for an object to be signaled, while dispatching window messages.

EqualPins

Miscellaneous Helper Functions

Checks if two pins are on the same object.

Syntax

BOOL EqualPins(
    IUnknown *pPin1,
    IUnknown *pPin2
);

Parameters

pPin1
Pointer to one pin.
pPin2
Pointer to the other pin.

Return Value

Returns TRUE if both pins are on the same object, or FALSE otherwise.

Int64x32Div32

Miscellaneous Helper Functions

Multiplies a by b, adds rnd to the 96-bit result, then divides by c.

Syntax

LONGLONG WINAPI Int64x32Div32(
  LONGLONG a,
  LONG b,
  LONG c,
  LONG rnd
  );

Return Value

Returns either the (a * b + rnd)/c calculation or one of the following values.

0x7FFFFFFFFFFFFFFF Overflow occurred because the result is too large (positive).
0x8000000000000000 Overflow occurred because the result is too large (negative).

Remarks

Rounding on the division is toward zero. Division by zero is counted as an overflow condition.

IsEqualObject

Miscellaneous Helper Functions

Checks if two interfaces are on the same object.

Syntax

BOOL WINAPI IsEqualObject(
    IUnknown *pFirst,
    IUnknown *pSecond
);

Parameters

pFirst
Pointer to one interface.
pSecond
Pointer to the other interface.

Return Value

Returns TRUE if the interfaces are both on the same object, or FALSE otherwise.

llMulDiv

Miscellaneous Helper Functions

Multiplies a by b, adds rnd to the 128-bit result, then divides by c.

Syntax

LONGLONG WINAPI llMulDiv(
  LONGLONG a,
  LONGLONG b,
  LONGLONG c,
  LONGLONG rnd
  );

Return Value

Returns either the (a * b + rnd)/c calculation or one of the following values.

0x7FFFFFFFFFFFFFFF Overflow occurred because the result is too large (positive).
0x8000000000000000 Overflow occurred because the result is too large (negative).

Remarks

Rounding on the division is toward zero. Division by zero is counted as an overflow condition.

WaitDispatchingMessages

Miscellaneous Helper Functions

Waits for an object to be signaled, while dispatching window messages.

Syntax

DWORD WINAPI WaitDispatchingMessages(
    HANDLE hObject,
    DWORD dwWait,
    HWND hwnd = NULL,
    UINT uMsg = 0
    HANDLE hEvent = NULL;
);

Parameters

hObject
Handle of the object to wait for.
dwWait
Time-out interval, in milliseconds.
hwnd
Optional handle to a window.
uMsg
Optional window message, specifying a message to dispatch.
hEvent
Optional handle to an event to wait for.

Return Value

Returns the value from the WaitForMultipleObjects function.

Remarks

If an object owns a window, it should dispatch window messages while waiting. This function enables the object to wait for an event, semaphore, or other mutual exclusion object while dispatching messages.