---
name: "DispCallFunc"
section: "3w"
platform: "linux"
package: "libwine-dev"
version: "1.4.1-4"
release: "Debian 7 (Wheezy)"
platforms: ["linux"]
url: "https://new.carta.tech/DispCallFunc"
---

# DispCallFunc(3w)

## NAME

**DispCallFunc** (OLEAUT32.@)

## SYNOPSIS

HRESULT DispCallFunc\
  (\
   void\*        *pvInstance*,\
   ULONG\_PTR    *oVft*,\
   CALLCONV     *cc*,\
   VARTYPE      *vtReturn*,\
   UINT         *cActuals*,\
   VARTYPE\*     *prgvt*,\
   VARIANTARG\*\* *prgpvarg*,\
   VARIANT\*     *pvargResult*\
  )

## DESCRIPTION

Invokes a function of the specified calling convention, passing the specified arguments and returns the result.

## PARAMS

*pvInstance* **\[In\]**  Optional pointer to the instance whose function to invoke.

*oVft* **\[In\]**  The offset in the vtable. See notes.

*cc* **\[In\]**  Calling convention of the function to call.

*vtReturn* **\[In\]**  The return type of the function.

*cActuals* **\[In\]**  Number of parameters.

*prgvt* **\[In\]**  The types of the parameters to pass. This is used for sizing only.

*prgpvarg* **\[In\]**  The arguments to pass.

*pvargResult* **\[Out\]**  The return value of the function. Can be **NULL**.

## RETURNS

**Success:** **S\_OK**.

**Failure:** **HRESULT** code.

## NOTES

The **HRESULT** return value of this function is not affected by the return value of the user supplied function, which is returned in *pvargResult*.

If *pvInstance* is **NULL** then a non-object function is to be called and *oVft* is the address of the function to call.

The *cc* parameter can be one of the following values: \
 CC\_FASTCALL\
 CC\_CDECL\
 CC\_PASCAL\
 CC\_STDCALL\
 CC\_FPFASTCALL\
 CC\_SYSCALL\
 CC\_MPWCDECL\
 CC\_MPWPASCAL

## IMPLEMENTATION

Declared in **"oleauto.h"**.

Implemented in **"dlls/oleaut32/typelib.c"**.

Debug channel **"ole"**.
