npx skills add ...
npx skills add anthropics/knowledge-work-plugins --skill zoom-meeting-sdk-windows
Zoom Meeting SDK for Windows - Native C++ SDK for embedding Zoom meetings into Windows desktop applications. Supports custom UI architecture with raw video/audio data, headless bots, and deep integration with meeting features. Includes SDK architecture patterns and Windows message loop handling.
npx skills add anthropics/knowledge-work-plugins --skill zoom-meeting-sdk-windows
Embed Zoom meeting capabilities into Windows desktop applications for native C++ integrations and headless bots.
The fastest way to master the SDK:
Building a Custom UI?
Having issues?
Need help with authentication? See the zoom-oauth skill for JWT token generation.
IMPORTANT: These are hard-won preferences from real project experience. Follow these when creating new projects.
.vcxprojAlways create a native Visual Studio .sln + .vcxproj project, not a CMake project. Reasons:
.sln to open in Visual Studio immediatelyconfig.json must be visible in Solution ExplorerThe config.json file (containing sdk_jwt, meeting_number, passcode) must be:
.vcxproj as a <None> item with <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>.vcxproj.filters file so it appears under a "Config" folder in Solution ExplorerExample .vcxproj entry:
Example .vcxproj.filters entry:
The Windows SDK is a C++ native SDK designed for:
The SDK follows a universal 3-step pattern for every feature:
meetingService->Get[Feature]Controller()class MyListener : public I[Feature]Event { ... }controller->SetEvent(listener) then call methodsThis works for ALL features: audio, video, chat, recording, participants, screen sharing, breakout rooms, webinars, Q&A, polling, whiteboard, and 20+ more!
Learn more: SDK Architecture Pattern Guide
Download from Zoom Marketplace:
zoom-meeting-sdk-windows_x86_64-{version}.zipCopy SDK files:
Project Properties → C/C++ → General → Additional Include Directories:
Project Properties → Linker → General → Additional Library Directories:
Project Properties → Linker → Input → Additional Dependencies:
Post-Build Event (Copy DLLs to output):
Create config.json:
⚠️ CRITICAL: Add Windows message loop or callbacks won't fire!
See: Windows Message Loop Guide
💡 Pro Tip: These are minimal examples. For complete, tested code see:
- Authentication Pattern - Full auth workflow
- Raw Video Capture - Complete video capture
- SDK Architecture Pattern - Implement any feature
CRITICAL: Include headers in this exact order or you'll get build errors:
See: Build Errors Guide for all dependency fixes.
AuthServiceEventListener.h:
See complete working code: Authentication Pattern Guide
MeetingServiceEventListener.h:
See all required methods: Interface Methods Guide
ZoomSDKRendererDelegate.h:
Complete video capture guide: Raw Video Capture Guide
⚠️ WITHOUT THIS, CALLBACKS WON'T FIRE!
Why message loop is critical: The SDK uses Windows COM/messaging for async callbacks. Without PeekMessage(), the SDK queues messages but they're never retrieved/dispatched, so callbacks never execute.
Symptoms without message loop:
See detailed explanation: Windows Message Loop Guide
| Issue | Solution |
|---|---|
| Callbacks don't fire / Auth timeout | Add Windows message loop → Guide |
uint32_t / AudioType errors | Fix include order → Guide |
| Abstract class error | Implement all virtual methods → Guide |
| How to implement [feature]? | Follow universal pattern → Guide |
| Authentication fails | Check JWT token & error codes → Guide |
| No video frames received | Call StartRawRecording() first → Guide |
Complete troubleshooting: Common Issues Guide
The SDK has 35+ feature controllers (audio, video, chat, recording, participants, screen sharing, breakout rooms, webinars, Q&A, polling, whiteboard, captions, AI companion, etc.).
Universal pattern that works for ALL features:
Get the controller (singleton):
Implement event listener (observer pattern):
Register and use:
Complete guide with examples: SDK Architecture Pattern
| Example | Description |
|---|---|
| SkeletonDemo | Minimal join meeting - start here |
| GetVideoRawData | Subscribe to raw video streams |
| GetAudioRawData | Subscribe to raw audio streams |
| SendVideoRawData | Send custom video as virtual camera |
| SendAudioRawData | Send custom audio as virtual mic |
| GetShareRawData | Capture screen share content |
| LocalRecording | Local MP4 recording |
| ChatDemo | In-meeting chat functionality |
| CaptionDemo | Closed caption/live transcription |
| BreakoutDemo | Breakout room management |
| Repository | Description |
|---|---|
| meetingsdk-windows-raw-recording-sample | Official raw data capture samples |
| meetingsdk-windows-local-recording-sample | Local recording with Docker |
Raw YUV/PCM files have no headers - you must specify format explicitly.
Key flags:
| Flag | Description |
|---|---|
-video_size WxH | Frame dimensions (e.g., 1280x720) |
-pixel_format yuv420p | I420/YUV420 planar format |
-f rawvideo | Raw video input (no container) |
-f s16le | Signed 16-bit little-endian PCM |
-ar 32000 | Sample rate (Zoom uses 32kHz) |
-ac 1 | Mono (use -ac 2 for stereo) |
Important: Beginning March 2, 2026, apps joining meetings outside their account must be authorized.
Use one of:
app_privilege_token in JoinParam)userZAK in JoinParam)onBehalfToken in JoinParam)This skill includes comprehensive guides created from real-world debugging:
Core Concepts:
Complete Examples:
Troubleshooting:
References:
Callbacks not firing → Missing Windows message loop (99% of issues)
Build errors → SDK header dependencies (uint32_t, AudioType, etc.)
Abstract class errors → Missing virtual method implementations
Once you learn the 3-step pattern, you can implement ANY of the 35+ features:
Documentation Version: Based on Zoom Windows Meeting SDK v6.7.2.26830
Need help? Start with SKILL.md for complete navigation.
If you're new to the SDK, follow this order:
Read the architecture pattern → concepts/sdk-architecture-pattern.md
.h filesFix build errors → troubleshooting/build-errors.md
Implement authentication → examples/authentication-pattern.md
Fix callback issues → troubleshooting/windows-message-loop.md
Implement virtual methods → references/interface-methods.md
Capture video (optional) → examples/raw-video-capture.md
Troubleshoot any issues → troubleshooting/common-issues.md
SDK/x64/h/meeting_service_interface.hSDK/x64/h/meeting_service_components/concepts/sdk-architecture-pattern.md
This is THE most important document. It teaches the universal 3-step pattern:
Once you understand this pattern, you can implement any of the 35+ features by just reading the SDK headers.
Key insight: The Zoom SDK follows a perfectly consistent architecture. Every feature works the same way.
troubleshooting/windows-message-loop.md
99% of "callbacks not firing" issues are caused by missing Windows message loop. This document explains:
PeekMessage() loopThis was the hardest bug to find during development (took ~2 hours).
troubleshooting/build-errors.md
SDK headers have dependency bugs that cause build errors. This document provides:
<cstdint> fixAudioType fixYUVRawDataI420 fixThese documents were created from actual debugging of a non-functional Zoom SDK sample. Here are the key insights:
Windows Message Loop is MANDATORY (not optional)
SDK Headers Have Dependency Bugs
#include <cstdint> in SDK headersmeeting_participants_ctrl_interface.h doesn't include meeting_audio_interface.hrawdata_renderer_interface.h only forward-declares YUVRawDataI420Include Order is CRITICAL
<windows.h> must be FIRST<cstdint> must be SECONDALL Virtual Methods Must Be Implemented
The Architecture is Beautifully Consistent
→ Common Issues - Comprehensive error code tables (SDKERR, AUTHRET, Login, BO, Phone, OBF)
→ Captions & Transcription Guide
All documents are based on Zoom Windows Meeting SDK v6.7.2.26830.
Different SDK versions may have:
If using a different version, use grep "= 0" SDK/x64/h/*.h to verify required methods.
Remember: The SDK Architecture Pattern is the fastest way to understand how the Windows Meeting SDK fits together. Read it first if you are debugging custom UI or event flow issues.