API referenceRendering & Viewer

rasExecBookmark

Nominally: execute a PDF action (rasExecAction) or

C
TUpdBmkAction __stdcall rasExecAction(IPGC* CachePtr, void* Ctx);
TUpdBmkAction __stdcall rasExecBookmark(IPGC CachePtr, uint32_t Handle, int32_t* NewX, int32_t* NewY, float* NewZoom, TPDFPageScale* NewPageScale, void* Action);
Delphi
function rasExecAction(var CachePtr: IPGC; Ctx: Pointer): TUpdBmkAction; stdcall;
function rasExecBookmark(CachePtr: IPGC; Handle: Cardinal; var NewX, NewY: Integer; var NewZoom: Single; var NewPageScale: TPDFPageScale; Action: Pointer): TUpdBmkAction; stdcall;

Purpose. Nominally: execute a PDF action (rasExecAction) or navigate to a bookmark's destination (rasExecBookmark), reporting the resulting viewport position/zoom to scroll to.

Description — both confirmed complete stubs. rasExecAction is Result := TUpdBmkAction(0)CachePtr/Ctx never read. rasExecBookmark is identically Result := TUpdBmkAction(0)Handle/Action never read, and none of NewX/NewY/NewZoom/ NewPageScale is ever written, the same class of dead output as rasSelectAnnotOrField's equivalent parameters above. There is no working action-execution or bookmark-navigation entry point anywhere in this ras* viewer surface — a host implementing "click a bookmark, scroll to it" must resolve the destination itself via the document-level bookmark/action APIs (Actions & Named Destinations/E09, Bookmarks and Outlines) and drive rasSetCurrPage/rasZoom/rasScroll (Page Navigation, Layout, and Geometry/E04) directly.

Parameters.

ParameterDescription
CachePtr, Ctx, Handle, ActionAll accepted but never read.
NewX, NewY, NewZoom, NewPageScaleDeclared as outputs but never written.

Return value. Always TUpdBmkAction(0).

C# (P/Invoke)

wrappers/dotnet/LumasPdf.cs
public static extern uint rasExecBookmark(IntPtr CachePtr, uint Handle, ref int NewX, ref int NewY, ref float NewZoom, ref TPDFPageScale NewPageScale, IntPtr Action);
Area
Rendering & Viewer
Category

Rasterizer/Rendering

Exported names

rasExecBookmark

String variants

The …A form takes UTF-8, …W takes UTF-16; a bare name aliases the ANSI form.

See working code

Worked examples — complete programs in ten languages.