API reference › Rendering & Viewer
rasExecBookmark
Nominally: execute a PDF action (rasExecAction) or
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);
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.
| Parameter | Description |
|---|---|
CachePtr, Ctx, Handle, Action | All accepted but never read. |
NewX, NewY, NewZoom, NewPageScale | Declared as outputs but never written. |
Return value. Always TUpdBmkAction(0).
C# (P/Invoke)
public static extern uint rasExecBookmark(IntPtr CachePtr, uint Handle, ref int NewX, ref int NewY, ref float NewZoom, ref TPDFPageScale NewPageScale, IntPtr Action);
Rasterizer/Rendering
rasExecBookmark
The …A form takes UTF-8, …W
takes UTF-16; a bare name aliases the ANSI form.
Worked examples — complete programs in ten languages.