دورة أساسيات البرمجة VB
ما هو متصفح النصوص APIAPI
نوع بيانات تعريف وظيفة API و"نوع الأمان"
هيكل ثابت
تلخيص بعض مجموعات وظائف API: وظائف التحكم والرسائل، وظائف الأجهزة والنظام، وظائف القائمة، وظائف الرسم
ما هو API
بادئ ذي بدء، من الضروري إخبار الجميع ما هي واجهة برمجة التطبيقات (API). ما يسمى بـ API تمت كتابته في الأصل لمبرمجي C وC++. ببساطة، API هي نوع من الوظائف، وهي مضمنة في ملف مكتبة ارتباط ديناميكي إضافي يسمى DLL. وفقًا للتعريف القياسي، فإن واجهة برمجة التطبيقات (API) هي واجهة برمجة تطبيقات 32 بت لنظام التشغيل Windows، وهي عبارة عن سلسلة من الوظائف والرسائل والهياكل المعقدة للغاية، وهي تسمح للمبرمجين باستخدام أنواع مختلفة من لغات البرمجة لتجميع البرامج التي يتم تشغيلها على تطبيقات Windows 95 و Windows NT على النظام. يمكن القول أنه إذا كنت قد درست VC من قبل، فإن واجهة برمجة التطبيقات (API) لا تمثل مشكلة بالنسبة لك. ولكن إذا لم تكن قد تعلمت VC، أو لم تكن على دراية ببنية Windows95، فيمكن القول أن تعلم API سيكون أمرًا صعبًا للغاية.
إذا قمت بفتح مجلد النظام في WINDOWS، يمكنك أن تجد أن هناك العديد من الملفات الإضافية المسماة DLL. لا يحتوي ملف DLL على وظيفة API واحدة فقط، بل يحتوي على العشرات أو حتى المئات. هل يمكننا جميعًا إتقانها؟ الجواب هو لا: من المستحيل إتقانها. لكن في الواقع، لا نحتاج حقًا إلى إتقانها جميعًا، نحتاج فقط إلى التركيز على إتقان وظائف واجهة برمجة التطبيقات (API) التي تأتي مع نظام Windos نفسه. ومع ذلك، يجب أيضًا تجاهل الوظائف التي تكرر وظائف VB الخاصة. على سبيل المثال، VB
يمكن للأمر etAttr الحصول على سمات الملف، ويمكن لـ SetAttr تعيين سمات الملف. هناك أيضًا وظائف مقابلة لواجهة برمجة التطبيقات (API).
لدى GetFileAttributes وSetFileAttributes أداء مماثل. بعد هذا الحساب، لم يتبق سوى 500 أو 600. نعم، عدد غير قليل. ومع ذلك، يمكنني أن أجرؤ على إخبارك أنه طالما أنك تتقن 100 منها بشكل مألوف، فإن مستوى البرمجة الخاص بك سيكون على الأقل ضعف ما هو عليه الآن. على الرغم من أن الناس يقولون إن VB وWINDOWS لديهما علاقة وثيقة، إلا أنني أعتقد أن API أقرب
ويندوز. إذا تعلمت واجهة برمجة التطبيقات (API)، فإن المكسب الأول هو فهمك لبنية WINDOWS. وهذا المكسب ليس سهلا.
ماذا سيحدث لو لم تعتمد على واجهات برمجة التطبيقات (APIs) أستطيع أن أقول لك أن معظمها كتب برمجة متقدمة (طبعا ليس لأن عنوان الكتاب "متقدم" بل "متقدم" في "محتويات"). هذا الكتاب" في البداية). الكتب مخصصة للقراء الذين لديهم أساس معين من لغة VB)، وعادةً ما تبدأ الأسئلة الأولى بواجهة برمجة التطبيقات (API). لذلك، يمكن القول أنه إذا لم تتعلم واجهة برمجة التطبيقات (API)، فمن المحتمل أن تظل في المستوى المبتدئ ولن تتمكن من الصعود. قد تكون الطريقة الوحيدة هي طلب المساعدة من الآخرين: أنا أموت، تعال وأنقذني، ماذا أفعل بهذا، ماذا أفعل بذاك، هل أنت منزعج بالطبع، هناك الكثير من الأشخاص الطيبين على الإنترنت الآن؟ (بما في ذلك أنا، هيهي)، ولكن يجب أن تفهم أنه من خلال هذه الطريقة، لن تتمكن من إنتاج أعمال جيدة بين يديك. وذلك لأنه بدون هذه المعرفة لا يمكنك تكوين مفهوم تصميم شامل في عقلك.
متصفح نص واجهة برمجة التطبيقات[العودة]
العديد من وظائف API طويلة جدًا. هل تريد أن ترى كيف تبدو، إليك وظيفة APIDdeClientTransaction كمثال:
قم بتعريف الدالةDdeClientTransactionLib"user32"(pDataAsByte,ByValcbDataAsLong,ByValhConvAsLong,ByValhszItemAsLong,ByValwFmtAsLong,ByValwTypeAsLong,ByValdwTimeoutAsLong,pdwResultAsLong)AsLong
رائع! إذا لم تكن قد تعرضت لواجهة برمجة التطبيقات (API) منذ فترة طويلة، فأعتقد أنك يجب أن تشعر بالخوف. ربما تفكر فيما إذا كان يجب عليك مواصلة التعلم أم لا. لكن لا تقلق، لحسن الحظ أن مصممي Microsoft يزودوننا بأدوات مفيدة، وهذه هي واجهة برمجة التطبيقات (API).
عارض النص.
من خلال عارض النصوص API، يمكننا بسهولة العثور على إعلانات الوظائف وأنواع البنية والثوابت التي يتطلبها البرنامج، ثم نسخها إلى الحافظة، وأخيرًا لصقها في مقطع التعليمات البرمجية لبرنامج VB. في معظم الحالات، طالما أننا نحدد الجوانب الثلاثة للوظائف والهياكل والثوابت التي يتطلبها البرنامج، فيمكننا إضافتها إلى شريحة البرنامج من خلال العمليات المذكورة أعلاه على متصفح النصوص API، بحيث يمكن استخدامها في البرنامج . وظيفة. هذه هي الأسئلة الأساسية المنطقية لتعلم واجهة برمجة التطبيقات (API)، وهي أقل بكثير من محتوى النظام الضخم لواجهة برمجة التطبيقات (API). أين سنهدر طاقتنا في المستقبل (وهذا ليس هدرًا بأي حال من الأحوال) أي:
متى تستخدم أي وظيفة، ومتى تستخدم أي نوع من البنية، ومتى تستخدم أي ثابت.
إعلان وظيفة API
دعونا نفكر مرة أخرى. في VB، كيفية الإعلان عن وظيفة، أعتقد أنه إذا كنت تقرأ هذه المقالة، فيمكنك بالتأكيد الإجابة على هذا السؤال. فيما يلي إعلان الوظيفة الذي يجب أن يكون مألوفًا لك:
FunctionSetFocus(ByValhwndAsLong)AsLong
أي أن هذا السطر من التعليمات البرمجية يعرّف دالة تسمى SetFocus. تحتوي هذه الدالة على معلمة من نوع البيانات الطويلة ويتم تمريرها حسب القيمة (ByVal). بعد تنفيذ الدالة، سيتم إرجاع البيانات الطويلة.
إن إعلان وظائف واجهة برمجة التطبيقات (API) مشابه جدًا أيضًا، على سبيل المثال، تتم كتابة وظيفة SetFocus في واجهة برمجة التطبيقات (API) على النحو التالي:
DeclareFunctionSetFocusLib"user32"Alias"SetFocus"(ByValhwndAsLong)AsLong
الأمر أكثر تعقيدًا بعض الشيء. نعم، الأمر أكثر تعقيدًا بعض الشيء. لكن يمكنني أن أخبرك أنه باستثناء هذه الأجزاء الإضافية، فإن الأجزاء الأخرى لا تزال هي نفسها التي تعلمتها من قبل. الأمر نفسه ينطبق على استدعاءات الوظائف في البرامج. يحب:
DimdlAsLong
dl&=SetFoucs(Form1.Hwnd)
ولكن هناك شيء واحد واضح. إنه ليس مثل برنامج تكتبه بنفسك حيث يمكنك رؤية آلية التشغيل، ولا هو مثل VB
مثل الوظائف المضمنة، يمكنك معرفة كيفية استخدامها من تعليمات VB عبر الإنترنت. الطريقة الوحيدة هي التعلم والبحث عن معلومات أخرى غير لغة VB.
يتم استخدام عبارة Declare للإعلان عن مرجع إلى إجراء خارجي في مكتبة الارتباط الديناميكي (DLL) على مستوى الوحدة النمطية. لهذا، عليك فقط أن تتذكر أن أي إعلان لوظيفة API يجب أن يكتب هذا البيان.
يشير Iib إلى مكتبة الارتباط الديناميكي أو مورد التعليمات البرمجية الذي يحتوي على الإجراء أو الوظيفة المعلنة. وبعبارة أخرى، فإنه يشرح مسألة من أين تأتي الوظيفة أو العملية.
كما في المثال أعلاه، يشير SetFocusLib "user32" إلى أن الدالة SetFocus تأتي من ملف user32.dll. ملفات مكتبة الارتباط الديناميكي الرئيسية dll هي:
إدارة user32.dll ويندوز. إنشاء وإدارة واجهة مستخدم التطبيق.
واجهة جهاز الرسومات GDI32.dll. إنتاج مخرجات رسومية لأجهزة Windows
خدمة النظام Kernel32.dll. الوصول إلى موارد الكمبيوتر لنظام التشغيل.
لاحظ أنه عندما لا يكون ملف DLL موجودًا في مجلد Windows أو System، فيجب ذكر مصدره في الوظيفة (
طريق). على سبيل المثال، SetFocusLib "c:/Mydll/user32"
الاسم المستعار في إعلانات الوظائف اختياري. يشير إلى أن الإجراء المطلوب استدعاؤه له اسم آخر (اسم مستعار) في مكتبة الارتباط الديناميكي (DLL). على سبيل المثال، يشير الاسم المستعار "SetFocus" إلى أن الاسم الآخر لوظيفة SetFocus في User32.dll هو،
تعيين التركيز. لماذا الاسمان متماثلان؟ بالطبع، يمكن أن يكونا مختلفين أيضًا. في كثير من الحالات، يكون اسم الوظيفة الموصوف بواسطة الاسم المستعار، أي الحرف الأخير من الاسم المستعار غالبًا ما يكون الحرف A. على سبيل المثال، اسم آخر للوظيفة SetWindowsText هو
SetWindowsTextA، يتم التعبير عنه بالاسم المستعار "SetWindowsTextA". هذا A هو مجرد اصطلاح تسمية يستخدمه المصممون، مما يشير إلى أن الوظيفة تنتمي إلى إصدار ANSI.
إذًا، ما هو استخدام الأسماء المستعارة بالضبط؟ من الناحية النظرية، توفر الأسماء المستعارة طرقًا وظيفية لاستدعاء واجهات برمجة التطبيقات باسم آخر. إذا قمت بتحديد اسم مستعار، فبالرغم من أننا نستدعي الوظيفة وفقًا للوظيفة بعد عبارة Declare، فإن الاسم المستعار هو الخيار الأول للاستدعاء الفعلي للوظيفة. على سبيل المثال، تعريفات الدالة (Function، ABCD) التالية صالحة، وتستدعي نفس وظيفة SetFocus:
DeclareFunctionSetFocusLib"user32""SetFocus"(ByValhwndAsLong)AsLong
قم بتعريف ABCDSetFocusLib"user32"Alias"SetFocus"(ByValhwndAsLong)AsLong
تجدر الإشارة إلى أنه عند اختيار الاسم المستعار، يجب عليك الانتباه إلى حالة الاسم المستعار؛ إذا لم تختر الاسم المستعار، فيجب أن ينتبه اسم الوظيفة إلى الحالة ولا يمكن تغييره. بالطبع، في كثير من الحالات، نظرًا لأن إعلان الوظيفة يأتي مباشرةً من واجهة برمجة التطبيقات (API).
يتم نسخه من متصفح النصوص، وبالتالي فإن احتمال حدوث هذا الخطأ ضئيل جدًا، ولكن من الضروري أن تعرف ذلك.
تذكير أخير، يجب وضع إعلانات واجهة برمجة التطبيقات (بما في ذلك الهياكل والثوابت) في قسم "التصريحات العامة" في النموذج أو الوحدة النمطية.
أنواع البيانات و"نوع الأمان"
أنواع البيانات المستخدمة في وظائف API هي في الأساس نفس تلك الموجودة في VB. ولكن كوظيفة API لـ WIN32، فإن العدد الصحيح غير موجود
نوع البيانات. نقطة أخرى هي أن نوع البيانات المنطقية لا يمكن رؤيته في وظائف API. يظهر نوع البيانات المتغير في شكل Any في وظائف API، مثل DataAsAny. على الرغم من أن المعنى الضمني هو أنه يُسمح بتمرير أي نوع معلمة كمعلمة لوظيفة API هذه، إلا أن هناك عيوبًا معينة في القيام بذلك. والسبب هو أن هذا سيؤدي إلى إيقاف فحص جميع أنواع المعلمات المستهدفة. وهذا بطبيعة الحال يخلق فرصًا لحدوث أخطاء في أنواع مختلفة من استدعاءات المعلمات.
من أجل فرض فحص صارم للنوع وتجنب المشكلات المذكورة أعلاه، تتمثل إحدى الطرق في استخدام تقنية الاسم المستعار المذكورة أعلاه في الوظيفة. على سبيل المثال، يمكن استخدام أسلوب تعريف آخر لوظيفة GetDIBits API. على النحو التالي:
النموذج الأولي لوظيفة GetDIBits:
PublicDeclareFunctionGetDIBitsLib"gdi32"Alias"GetDIBits"(ByValaHDCAsLong،ByValhBitmapAsLong،ByValnStartScanAsLong،ByValnNumScansAsLong،lpBitsAsAny،lpBIAsBITMAPINFO،ByValwUsageAsLong)AsLong
تعديل وظيفة GetDIBits:
PublicDeclareFunctionGetDIBitsLongLib"gdi32"Alias"GetDIBits"(ByValaHDCAsLong،ByValhBitmapAsLong،ByValnStartScanAsLong،ByValnNumScansAsLong،lpBitsAsLong،lpBIAsBITMAPINFO،ByValwUsageAsLong)AsLong
من خلال المعرفة التي تم تعلمها سابقًا في هذه الدورة التدريبية، يمكننا أن نعرف بالفعل ما إذا كانت وظيفة GetDIBits النموذجية أو وظيفة GetDIBitsLong المعدلة ستستدعي بالفعل وظيفة GetDIBits الأصلية المحددة بواسطة الاسم المستعار. لكن يجب أن ترى أن الفرق بين الاثنين هو أننا نجبر معلمة lpBits على أن تكون طويلة في الوظيفة المعدلة. سيؤدي هذا إلى تقليل فرصة حدوث أخطاء في استدعاءات الوظائف. يُطلق على هذا الأسلوب اسم إعلان "النوع الآمن".
أنواع البيانات التي يتم مشاهدتها غالبًا في وظائف API هي: Long، String، Byte، Any.... (هذا كل شيء.)
ثابت
لا يوجد شيء خاص جدًا فيما يتعلق بثوابت واجهة برمجة التطبيقات (API). يرجى إلقاء نظرة على الكود التالي في VB:
Msg=MsgBox("مرحبا",vbOKCancel)
نحن نعلم أن قيمة الثابت vbOKCancel تساوي 1. يمكننا كتابة الكود أعلاه بهذه الطريقة دون التأثير على وظيفة الكود:
Msg=MsgBox("مرحبا",1)
لكنك قد لا ترغب في اختيار الخيار الأخير، لأنه سيجعل من الصعب فهم الكود. يتم اتباع هذا النهج أيضًا بواسطة واجهة برمجة التطبيقات (API). كل ما في الأمر هو أنه يجب تهيئة ثوابت واجهة برمجة التطبيقات (API) والإعلان عنها قبل الحدث، وهو ما لا يستطيع VB نفسه فهمه. محتواه لا يزال يأتي من API
متصفح النصوص. النموذج المحدد هو كما يلي:
PublicConstABM_ACTIVATE=&H6
PublicConstRIGHT_CTRL_PRESSED=&H4
PublicConstRPC_E_SERVER_DIED=&H80010007
PrivateConstRPC_S_CALL_FAILED_DNE=1727&
في تهيئة الثوابت، تستخدم بعض البرامج البرنامج العالمي، مثل GlobalConstABM_ACTIVATE=&H6، لكنني أعتقد أنه يمكن لـ Public استبداله بالكامل. لقد استخدمت Global في الماضي، ولكن ليس كثيرًا الآن. إذا كنت تستخدم هذا الآن وهذا الآن، فلن تتمكن من الحفاظ على الاتساق بين البرامج، أو على الأقل يبدو الأمر غريبًا.
هيكل [العودة]
البنية هي لغة C وC++. تسمى بشكل عام أنواع البيانات المخصصة في VB. من المفترض أن العديد من الأصدقاء يعرفون ذلك بالفعل. في مجال واجهة برمجة التطبيقات (API)، أفضّل أن أسميها بنية، لأن أنواع البنية المختلفة لواجهة برمجة التطبيقات (API) لم أحددها على الإطلاق (
حسب الطلب).
في VB، يتم تعريف بنية API أيضًا بواسطة عبارة TYPE....ENDTYPE. على سبيل المثال، في واجهة برمجة التطبيقات (API)، يتم تعريف بنية النقطة على النحو التالي:
PublicTypePOINTAPI
قيمة إحداثيات XAsLong للنقطة على إحداثي X (الإحداثي السيني)
YAsLong'القيمة الإحداثية للنقطة على الإحداثي Y (الإحداثي)
نوع النهاية
للحصول على مثال آخر، تعريف البنية المستطيلة (المستطيلة) في واجهة برمجة التطبيقات (API) هو كما يلي:
PublicTypeRECT
إحداثيات LeftAsLong'X للزاوية اليسرى العليا للمستطيل
إحداثيات TopAsLong' Y للزاوية اليسرى العليا للمستطيل
إحداثيات RightAsLong'X للزاوية اليمنى السفلية للمستطيل
إحداثيات BottomAsLong' Y للزاوية اليمنى السفلية للمستطيل
نوع النهاية
يمكن أيضًا نسخ هذا المحتوى من متصفح النص API. يمكن تغيير أسماء المتغيرات في هذه الهياكل حسب الرغبة دون التأثير على البنية نفسها. بمعنى آخر، جميع متغيرات الأعضاء هذه افتراضية. على سبيل المثال، يمكن تغيير بنية POINTAPI إلى ما يلي:
PublicTypePOINTAPI
MyXAsLong'القيمة الإحداثية للنقطة على الإحداثي X (الإحداثي السيني)
MyYAsLong'القيمة الإحداثية للنقطة على الإحداثي Y (الإحداثي)
نوع النهاية
ومع ذلك، بشكل عام، هذا ليس ضروريا. البنية نفسها هي نوع بيانات، لذلك، عند استخدامها، يجب عليك الإعلان عن أن المتغير المحدد من نوع البنية قبل أن تتمكن فعليًا من استخدام البنية في البرنامج. طريقة التصريح للبنية هي نفس طريقة التصريح للبيانات الأخرى، على سبيل المثال، تعلن العبارة التالية عن المتغير MyPoint كنوع بنية POINTAPI:
MyPointAsPOINTAPI
من السهل أيضًا الإشارة إلى متغيرات الأعضاء في البنية، ما عليك سوى إضافة "." بعد اسم البنية، ثم كتابة متغير العضو المراد الرجوع إليه. هذا يشبه إلى حد كبير الإشارة إلى خاصية كائن في VB. على سبيل المثال، إذا قمنا بتعيين قيمة المتغير X في بنية MyPoint الموضحة أعلاه إلى المتغير Temp&
الرمز هو كما يلي:
درجة الحرارة&=MyPoint.X
ومع ذلك، من المهم ملاحظة أنه يجب ألا تعتقد أن MyPoint في المثال أعلاه يمثل قيمة. إنها ليست قيمة، بل عنوان (
المؤشر). القيمة والعنوان مفهومان مختلفان تمامًا. يتم تمرير متطلبات البنية بالرجوع إلى وظائف WINDOWS، أي جميع واجهات برمجة التطبيقات
في الوظائف، يتم تمرير الهياكل بواسطة ByRef (ByRef هو النوع الافتراضي في عبارة Declare). بالنسبة للهياكل العابرة، لا تحاول استخدام ByVal، فلن تحصل على شيء. نظرًا لأن اسم البنية هو في الواقع مؤشر إلى البنية (العنوان الأول للبنية)، يمكنك فقط نقل اسم البنية المحددة (راجع الملخص، لقد استخدمت الخط الأحمر لتسليط الضوء على طريقة النقل هذه).
نظرًا لأن البنية تنقل المؤشر، فستقوم الوظيفة بقراءة البنية وكتابتها مباشرةً. هذه الميزة مناسبة جدًا لتحميل نتائج تنفيذ الوظيفة في الهياكل.
ملخص[عودة]
يتم إعطاء الإجراء التالي لتلخيص ما تم تعلمه في هذا الدرس. ابدأ تشغيل VB، وأنشئ مشروعًا جديدًا، وأضف زر أمر، وانسخ التعليمة البرمجية التالية إلى مقطع التعليمات البرمجية، ثم قم بتشغيله.
PrivateDeclareFunctionGetCursorPosLib"user32"(lpPointAsPOINTAPI)AsLong
PrivateTypePOINTAPI'تحديد بنية النقطة
قيمة إحداثيات XAsLong للنقطة على إحداثي X (الإحداثي السيني)
YAsLong'القيمة الإحداثية للنقطة على الإحداثي Y (الإحداثي)
نوع النهاية
SubPrintCursorPos()
DimdlASLong
DimMyPointAsPOINTAPI
dl&=GetCursorPos(MyPoint)'اتصل بالوظيفة للحصول على إحداثيات ماوس الشاشة
Debug.Print"X="&Str(MyPoint.X)&"و"&"Y="&Str(MyPoint.Y)
EndSub
PrivateSubCommand1_Click()
PrintCursorPos
EndSub
نتيجة الإخراج هي (قد تحصل كل عملية تشغيل على نتائج مختلفة، والتي يتم تحديدها من خلال موضع مؤشر الماوس على الشاشة عند استدعاء الوظيفة):
X=240وY=151
في البرنامج، يتم استخدام الدالة GetCursorPos للحصول على موضع مؤشر الماوس على الشاشة.
في المثال أعلاه، يمكنك أن تجد أن محتويات بنية MyPpint التي تم تمريرها كمعلمات قد خضعت لتغييرات جوهرية بعد استدعاء الوظيفة. ويرجع ذلك إلى حقيقة أن البنية يتم تمريرها بواسطة ByRef.
بعض مجموعات وظائف API [العودة]
WindowsAPI
1. الضوابط ووظائف الرسالة
AdjustWindowRect بالنظر إلى نمط النافذة، قم بحساب حجم النافذة المطلوبة للحصول على مستطيل منطقة العميل المستهدف
يحدد AnyPopup ما إذا كانت هناك أية نوافذ منبثقة على الشاشة
يقوم ArrangeIconicWindows بترتيب النوافذ الفرعية المصغرة للنافذة الرئيسية
وظيفة إدخال مؤشر ترابط اتصال AttachThreadInput
يبدأ BeginDeferWindowPos عملية إنشاء سلسلة من مواضع النوافذ الجديدة
يقوم BringWindowToTop بإحضار النافذة المحددة إلى أعلى قائمة النوافذ
يقوم CascadeWindows بترتيب النوافذ بطريقة متتالية
يقوم ChildWindowFromPoint بإرجاع مقبض النافذة الفرعية الأولى في النافذة الأصلية التي تحتوي على النقطة المحددة.
يحدد ClientToScreen إحداثيات الشاشة لنقطة في النافذة ممثلة بإحداثيات منطقة العميل
يقوم CloseWindow بتصغير النافذة المحددة
نسخة محتوى المستطيل CopyRect
DeferWindowPos تحدد هذه الوظيفة موضع نافذة جديد لنافذة معينة
يقوم DestroyWindow بمسح النافذة المحددة وجميع النوافذ الفرعية الخاصة بها
يصور DrawAnimatedRects سلسلة من المستطيلات الديناميكية
يسمح EnableWindow بجميع إدخالات الماوس ولوحة المفاتيح في النافذة المحددة أو يعطلها.
يقوم EndDeferWindowPos بتحديث مواضع وحالة جميع النوافذ المحددة عند استدعاء DeferWindowPos في نفس الوقت.
يقوم EnumChildWindows بتعداد النوافذ الفرعية للنافذة الرئيسية المحددة
يقوم EnumThreadWindows بتعداد النوافذ المتعلقة بالمهمة المحددة
يقوم EnumWindows بتعداد كافة النوافذ الرئيسية في قائمة النوافذ
يحدد EqualRect ما إذا كان الهيكلان المستطيلان متماثلين
يقوم FindWindow بالبحث عن أول نافذة ذات مستوى أعلى في قائمة النوافذ التي تفي بالمعايير المحددة
يبحث FindWindowEx عن النافذة الفرعية الأولى في قائمة النوافذ التي تطابق الشروط المحددة
FlashWindow يومض النافذة المحددة
يحصل GetActiveWindow على مقبض النافذة النشطة
يحصل GetCapture على مقبض النافذة الموجودة في مؤشر ترابط الإدخال الحالي ويتم التقاطها بالماوس (يتم تلقي نشاط الماوس بواسطته)
يحصل GetClassInfo على نسخة من بنية WNDCLASS (أو بنية WNDCLASSEX)، والتي تحتوي على معلومات تتعلق بالفئة المحددة.
يحصل GetClassLong على إدخال متغير طويل لفئة النافذة
يحصل GetClassName على اسم الفئة للإطار المحدد
يحصل GetClassWord على متغير عدد صحيح لفئة النافذة
يقوم GetClientRect بإرجاع حجم المستطيل في منطقة العميل بالنافذة المحددة
يحصل GetDesktopWindow على مقبض نافذة (نافذة سطح المكتب) يمثل الشاشة بأكملها
يحصل GetFocus على مقبض النافذة مع تركيز الإدخال
يحصل GetForegroundWindow على مقبض النافذة الأمامية
GetLastActivePopup يحصل على المقبض للنافذة المنبثقة التي تم تنشيطها مؤخرًا في النافذة الرئيسية المحددة
يستهدف GetLastError وظيفة API التي كانت تسمى سابقًا. استخدم هذه الوظيفة للحصول على معلومات خطأ موسعة.
يحدد GetParent النافذة الأصلية للنافذة المحددة
يبحث GetTopWindow في قائمة النوافذ الداخلية عن مقبض النافذة الأولى التي تنتمي إلى النافذة المحددة
يحصل GetUpdateRect على مستطيل يصف الجزء من النافذة المحددة الذي يحتاج إلى التحديث
يحصل GetWindow على مقبض النافذة التي لها علاقة محددة بالنافذة المصدر
يحصل GetWindowContextHelpId على معرف مشهد المساعدة المرتبط بالنافذة
يحصل GetWindowLong على معلومات من بنية النافذة المحددة
يحصل GetWindowPlacement على معلومات الحالة والموقع الخاصة بالنافذة المحددة
يحصل GetWindowRect على مستطيل النطاق للنافذة بأكملها، وتقع حدود النافذة وشريط العنوان وشريط التمرير والقائمة وما إلى ذلك ضمن هذا المستطيل.
يحصل GetWindowText على نص عنوان النموذج أو محتوى عنصر التحكم
يقوم GetWindowTextLength بالتحقق من طول نص عنوان النافذة أو محتوى التحكم
يحصل GetWindowWord على معلومات حول بنية النافذة المحددة
يعمل InflateRect على زيادة أو تقليل حجم المستطيل
تقوم الدالة IntersectRect بتحميل مستطيل إلى lpDestRect، وهو تقاطع مستطيلين، lpSrc1Rect وlpSrc2Rect.
يقوم InvalidateRect بحظر كل أو جزء من منطقة العميل الخاصة بالنافذة
يحدد IsChild ما إذا كانت النافذة تابعة أم نافذة ثانوية لنافذة أخرى
يحدد IsIconic ما إذا كان قد تم تصغير النافذة أم لا
يحدد IsRectEmpty ما إذا كان المستطيل فارغًا
يحدد IsWindow ما إذا كان مقبض النافذة صالحًا أم لا
يحدد IsWindowEnabled ما إذا كانت النافذة نشطة أم لا
يحدد IsWindowUnicode ما إذا كانت النافذة هي نافذة Unicode. وهذا يعني أن النافذة تتلقى حرفية Unicode لجميع الرسائل النصية
يحدد IsWindowVisible ما إذا كانت النافذة مرئية أم لا
يحدد IsZoomed ما إذا كان سيتم تكبير النافذة أم لا
يقوم LockWindowUpdate بتأمين النافذة المحددة ويمنعها من التحديث
يقوم MapWindowPoints بتحويل النقاط الموجودة في إحداثيات منطقة العميل لنافذة واحدة إلى نظام إحداثيات منطقة العميل لنافذة أخرى
يقوم MoveWindow بتغيير موضع وحجم النافذة المحددة
يقوم OffsetRect بتحريك المستطيل من خلال تطبيق إزاحة محددة
يقوم OpenIcon باستعادة البرنامج المصغر وتنشيطه
يحدد PtInRect ما إذا كانت النقطة المحددة داخل المستطيل
يقوم RedrawWindow بإعادة رسم النافذة بأكملها أو جزء منها
يقوم ReleaseCapture بتحرير التقاط الماوس للتطبيق الحالي
يحدد ScreenToClient إحداثيات منطقة العميل لنقطة محددة على الشاشة
ScrollWindow كل أو جزء من منطقة العميل في نافذة التمرير
يقوم ScrollWindowEx بتمرير منطقة العميل بالكامل أو جزء منها في النافذة، اعتمادًا على الخيارات الإضافية.
يقوم SetActiveWindow بتنشيط النافذة المحددة
يقوم SetCapture بتعيين التقاط الماوس إلى النافذة المحددة
يقوم SetClassLong بتعيين إدخال متغير طويل لفئة النافذة
يقوم SetClassWord بتعيين إدخال لفئة النافذة
يقوم SetFocusAPI بتعيين تركيز الإدخال على النافذة المحددة. إذا لزم الأمر، يتم تنشيط النافذة
يقوم SetForegroundWindow بتعيين النافذة باعتبارها النافذة الأمامية للنظام
يحدد SetParent الأصل الجديد للنافذة
يقوم SetRect بتعيين محتويات المستطيل المحدد
يقوم SetRectEmpty بتعيين المستطيل إلى مستطيل فارغ
يقوم SetWindowContextHelpId بتعيين معرف مشهد المساعدة (السياق) للإطار المحدد
يقوم SetWindowLong بتعيين المعلومات الخاصة بالإطار المحدد في بنية النافذة
يقوم SetWindowPlacement بتعيين حالة النافذة ومعلومات الموقع
يحدد SetWindowPos موضعًا وحالة جديدة للنافذة
يقوم SetWindowText بتعيين نص عنوان النافذة أو محتوى عنصر التحكم
يقوم SetWindowWord بتعيين المعلومات للنافذة المحددة في بنية النافذة
ShowOwnedPopups يعرض أو يخفي كافة النوافذ المنبثقة المملوكة للنافذة المحددة
يتحكم ShowWindow في رؤية النافذة
ShowWindowAsync يشبه ShowWindow
يقوم SubtractRect بتحميل المستطيل lprcDst، وهو نتيجة طرح lprcSrc2 من المستطيل lprcSrc1
يقوم برنامج TileWindows بترتيب النوافذ بترتيب البلاط
يقوم UnionRect بتحميل المستطيل المستهدف lpDestRect، وهو نتيجة اتحاد lpSrc1Rect وlpSrc2Rect
يفرض UpdateWindow تحديثًا فوريًا للنافذة
يقوم ValidateRect بالتحقق من صحة كل أو جزء من منطقة العميل في النافذة
يقوم WindowFromPoint بإرجاع المقبض إلى النافذة التي تحتوي على النقطة المحددة. تجاهل النوافذ المقنعة والمخفية والشفافة
2. وظائف الأجهزة والنظام
يقوم ActivateKeyboardLayout بتنشيط تخطيط لوحة المفاتيح الجديد. يحدد تخطيط لوحة المفاتيح موقع ومعنى المفاتيح الموجودة على لوحة المفاتيح الفعلية
يتم استخدام الصفارة لتوليد أصوات بسيطة
يقوم CharToOem بتحويل سلسلة من مجموعة أحرف ANSI إلى مجموعة أحرف OEM
يقوم ClipCursor بتقييد المؤشر بالمنطقة المحددة
يقوم برنامج ConvertDefaultLocale بتحويل معرف محلي خاص إلى معرف محلي حقيقي
يقوم CreateCaret بإنشاء علامة إقحام (المؤشر) بناءً على المعلومات المحددة وتحديدها كعلامة إقحام افتراضية للنافذة المحددة
يقوم DestroyCaret بمسح (تدمير) علامة الإقحام
يقوم EnumCalendarInfo بتعداد معلومات التقويم المتوفرة في البيئة "المحلية" المحددة
يقوم EnumDateFormats بتعداد تنسيقات التاريخ الطويلة والقصيرة المتوفرة في الإعداد "المحلي" المحدد
يقوم EnumSystemCodePages بتعداد صفحات التعليمات البرمجية المثبتة أو المدعومة على النظام
يقوم EnumSystemLocales بتعداد الإعدادات "المحلية" التي قام النظام بتثبيتها أو يوفر الدعم لها
يقوم EnumTimeFormats بتعداد تنسيقات الوقت المطبقة على موقع محدد
يخرج ExitWindowsEx من النوافذ ويعيد تشغيله بخيارات محددة
يقوم ExpandEnvironmentStrings بتوسيع سلسلة البيئة
تقوم FreeEnvironmentStrings بترجمة كتلة سلسلة البيئة المحددة
يحدد GetACP صفحة رموز ANSI السارية حاليًا
يحدد GetAsyncKeyState حالة المفتاح الظاهري المحدد عند استدعاء الوظيفة
يحدد GetCaretBlinkTime التردد الوامض لمؤشر علامة الإقحام
يحدد GetCaretPos الموقع الحالي لعلامة الإقحام
GetClipCursor يحصل على مستطيل يصف منطقة القطع المحددة حاليًا لمؤشر الماوس
يحصل GetCommandLine على مؤشر إلى المخزن المؤقت لسطر الأوامر الحالي
يحصل GetComputerName على اسم هذا الكمبيوتر
يحصل GetCPInfo على المعلومات المتعلقة بصفحة الرموز المحددة
يقوم GetCurrencyFormat بتنسيق الرقم وفقًا لتنسيق العملة للإعداد "المحلي" المحدد
GetCursor يحصل على مقبض مؤشر الماوس المحدد حاليًا
يحصل GetCursorPos على الموضع الحالي لمؤشر الماوس
يقوم GetDateFormat بتنسيق تاريخ النظام بتنسيق "محلي" محدد
يحدد GetDoubleClickTime الفاصل الزمني بين نقرتين متتاليتين بالماوس والتي ستتم معالجتها كحدث نقر مزدوج.
يقوم GetEnvironmentStrings بتخصيص وإرجاع المؤشر إلى كتلة الذاكرة التي تحتوي على إعدادات سلسلة البيئة الحالية.
يحصل GetEnvironmentVariable على قيمة متغير البيئة
يحدد GetInputState ما إذا كان هناك أي أحداث معلقة (في انتظار المعالجة) للماوس أو لوحة المفاتيح
تم استبدال GetKBCodePage بـ GetOEMCP، وكلتا الوظيفتين متماثلتان تمامًا
يحصل GetKeyboardLayout على مؤشر يصف تخطيط لوحة المفاتيح للتطبيق المحدد
يحصل GetKeyboardLayoutList على قائمة بجميع تخطيطات لوحة المفاتيح المطبقة على النظام
يحصل GetKeyboardLayoutName على اسم تخطيط لوحة المفاتيح النشط حاليًا
يحصل GetKeyboardState على الحالة الحالية لكل مفتاح افتراضي على لوحة المفاتيح
يحصل GetKeyboardType على معلومات حول لوحة المفاتيح المستخدمة
يحدد GetKeyNameText اسم المفتاح المعطى لرمز المسح الضوئي.
يحدد GetKeyState حالة المفتاح الظاهري المحدد للمفاتيح التي تمت معالجتها عند آخر إدخال للمعلومات.
يستهدف GetLastError وظيفة API التي كانت تسمى سابقًا. استخدم هذه الوظيفة للحصول على معلومات خطأ موسعة.
يحصل GetLocaleInfo على المعلومات المتعلقة بـ "المكان" المحدد
يحصل GetLocalTime على التاريخ والوقت المحلي
يقوم GetNumberFormat بتنسيق رقم بتنسيق محدد لـ "المكان" المحدد
يحدد GetOEMCP صفحة الرموز الخاصة بنظام Windows للتحويل بين مجموعات أحرف OEM وANSI
يحدد GetQueueStatus نوع الرسالة المعلقة (في انتظار المعالجة) في قائمة انتظار رسائل التطبيق
يحدد GetSysColor لون كائن عرض النوافذ المحدد
يحصل GetSystemDefaultLangID على معرف اللغة الافتراضي للنظام
يحصل GetSystemDefaultLCID على "مكان" النظام الافتراضي الحالي
يحصل GetSystemInfo على المعلومات المتعلقة بالنظام الأساسي للأجهزة
يقوم GetSystemMetrics بإرجاع المعلومات المتعلقة ببيئة Windows
يحصل GetSystemPowerStatus على المعلومات المتعلقة بحالة طاقة النظام الحالية
يحصل GetSystemTime على وقت النظام الحالي ويستخدم تنسيق "التوقيت العالمي المنسق" (أي UTC، ويسمى أيضًا بتوقيت جرينتش).
يقوم GetSystemTimeAdjustment بمزامنة ساعة النظام الداخلية مع مصدر ساعة خارجي
يحصل GetThreadLocale على المعرف المحلي لمؤشر الترابط الحالي
يتم استخدام GetTickCount للحصول على طول الوقت (بالملي ثانية) الذي انقضى منذ بدء تشغيل Windows
يقوم GetTimeFormat بتنسيق وقت النظام بتنسيق محدد لـ "المكان" المحدد حاليًا
يحصل GetTimeZoneInformation على المعلومات المتعلقة بإعدادات المنطقة الزمنية للنظام
يحصل GetUserDefaultLangID على معرف اللغة الافتراضي للمستخدم الحالي
GetUserDefaultLCID يحصل على الإعدادات "المحلية" الافتراضية للمستخدم الحالي
يحصل GetUserName على اسم المستخدم الحالي
يحدد GetVersion إصدارات Windows وDOS قيد التشغيل حاليًا
يحصل GetVersionEx على معلومات الإصدار المتعلقة بالنظام الأساسي ونظام التشغيل
يقوم HideCaret بإخفاء علامة الإقحام (المؤشر) في النافذة المحددة
يحدد IsValidCodePage ما إذا كانت صفحة الرموز صالحة
يحدد IsValidLocale ما إذا كان المعرف المحلي صالحًا
تعمل وظيفة keybd_event على محاكاة إجراءات لوحة المفاتيح
يقوم LoadKeyboardLayout بتحميل تخطيط لوحة المفاتيح
يقوم MapVirtualKey بإجراء تحويلات مختلفة لرمز المسح والأحرف بناءً على نوع التعيين المحدد.
يقوم MapVirtualKeyEx بإجراء تحويلات مختلفة لرموز المسح والأحرف بناءً على نوع التعيين المحدد.
يقوم تطبيق messageBeep بتشغيل صوت النظام. يتم تحديد خطة توزيع صوت النظام في لوحة التحكم
mouse_event يحاكي حدث الماوس
يحدد OemKeyScan رمز المسح الضوئي وحالة مفتاح Shift لحرف ASCII في مجموعة أحرف OEM
يقوم OemToChar بتحويل سلسلة من مجموعة أحرف OEM إلى مجموعة أحرف ANSI
يحدد SetCaretBlinkTime التردد الوامض لعلامة الإقحام (المؤشر)
يحدد SetCaretPos موضع علامة الإقحام
يقوم SetComputerName بتعيين اسم كمبيوتر جديد
يقوم SetCursor بتعيين مؤشر الماوس المحدد على المؤشر الحالي
يقوم SetCursorPos بتعيين موضع المؤشر
يقوم SetDoubleClickTime بتعيين الفاصل الزمني بين نقرتين متتاليتين بالماوس والذي يعتبره النظام حدث نقر مزدوج.
يقوم SetEnvironmentVariable بتعيين متغير البيئة إلى قيمة محددة
يقوم SetKeyboardState بتعيين الحالة الحالية لكل مفتاح افتراضي على لوحة المفاتيح
يقوم SetLocaleInfo بتغيير معلومات الإعداد "المحلية" للمستخدم
يقوم SetLocalTime بتعيين التوقيت المحلي الحالي
يقوم SetSysColors بتعيين لون الكائن المعروض في النافذة المحددة
يغير SetSystemCursor أي مؤشر نظام قياسي
يقوم SetSystemTime بتعيين وقت النظام الحالي
يقوم SetSystemTimeAdjustment بإضافة قيمة معايرة بشكل دوري لمزامنة ساعة النظام الداخلية مع مصدر إشارة الساعة الخارجية.
يقوم SetThreadLocale بتعيين الإعدادات المحلية لمؤشر الترابط الحالي
يقوم SetTimeZoneInformation بتعيين معلومات المنطقة الزمنية للنظام
يعرض ShowCaret علامة الإقحام (المؤشر) في النافذة المحددة
يتحكم ShowCursor في رؤية مؤشر الماوس
يحدد SwapMouseButton ما إذا كان سيتم تبديل وظائف زري الماوس الأيمن والأيسر
يحصل SystemParametersInfo على عدد كبير من معلمات نظام Windows ويقوم بتعيينها
يقوم SystemTimeToTzSpecificLocalTime بتحويل وقت النظام إلى التوقيت المحلي
يقوم ToAscii بتحويل المفتاح الظاهري إلى حرف ASCII بناءً على رمز المسح الضوئي الحالي ومعلومات لوحة المفاتيح.
يقوم ToUnicode بتحويل المفتاح الظاهري إلى حرف Unicode استنادًا إلى رمز المسح الضوئي الحالي ومعلومات لوحة المفاتيح
يقوم UnloadKeyboardLayout بإلغاء تحميل تخطيط لوحة المفاتيح المحدد
يحدد VkKeyScan رمز المفتاح الظاهري وحالة مفتاح Shift بناءً على حرف ASCII في مجموعة أحرف Windows
زيادة
3. وظيفة القائمة
يقوم AppendMenu بإضافة عنصر قائمة إلى القائمة المحددة
يقوم CheckMenuItem بالتحقق من عنصر القائمة المحدد أو إلغاء تحديده
يحدد CheckMenuRadioItem أنه تم تحديد عنصر القائمة كعنصر "راديو".
يقوم CreateMenu بإنشاء قائمة جديدة
يقوم CreatePopupMenu بإنشاء قائمة منبثقة فارغة
يقوم برنامج RemoveMenu بحذف إدخال القائمة المحدد
يقوم DestroyMenu بحذف القائمة المحددة
يقوم DrawMenuBar بإعادة رسم القائمة للإطار المحدد
EnableMenuitem يتيح أو يعطل عناصر القائمة المحددة
GetMenu يحصل على مقبض القائمة في النافذة
GetMenucheckmarkDimensions يعيد حجم علامة الاختيار القائمة
GetMenucontexthelpid يحصل على معرف مشهد المساعدة في القائمة
يحدد GetMenudefaultItem العنصر في القائمة هو العنصر الافتراضي
GetMenuitemCount إرجاع عدد العناصر (عناصر القائمة) في القائمة
يقوم GetMenuitemid بإرجاع معرف القائمة للعنصر الموجود في الموضع المحدد في القائمة
GetMenuiteMinfo يحصل (يستقبل) معلومات محددة تتعلق بعنصر قائمة
يقوم getMenuitEmRect بتحميل معلومات إحداثيات الشاشة لعنصر القائمة المحدد في مستطيل
يحصل GetMenustate على المعلومات المتعلقة بحالة عنصر القائمة المحدد
GetMenustring يحصل على سلسلة عنصر القائمة المحدد
يحصل GetSubmenu على مقبض قائمة منبثقة ، والتي تقع في الموضع المحدد في القائمة
GetSystemMenu يحصل على مقبض قائمة النظام في النافذة المحددة
يتحكم Hilitemenuitem في حالة تسليط الضوء على عناصر القائمة ذات المستوى الأعلى
إدراج insertmenu إدخال قائمة في الموضع المحدد في القائمة ، ونقل الإدخالات الأخرى حسب الحاجة
إدراج insertMenuitem عنصر قائمة جديدة
يحدد Ismenu ما إذا كان المقبض المحدد عبارة عن مقبض قائمة
يقوم LoadMenu بتحميل قائمة من الوحدة النمطية المحددة أو مثيل التطبيق
LoadMenuindIrect يقوم بتحميل قائمة
يحدد Menuitemprompoint أي عنصر القائمة يحتوي على نقطة محددة على الشاشة
ModifyMenu يغير إدخالات القائمة
RemoveMenu يزيل إدخال القائمة المحدد
SetMenu يعين قائمة النوافذ
SetMenucontexthelpid يعين معرف مشهد المساعدة في القائمة
SetMenudeFaultItem يعين عنصر قائمة كعنصر افتراضي
تقوم SetMenuitEmbitMaps بتعيين صورة نقطية محددة لاستخدامها في عنصر القائمة المحدد بدلاً من رمز الفحص القياسي (√)
SetMenuiteMinfo يعين المعلومات المحددة لعنصر القائمة
يعرض TrackPopOpMenu قائمة منبثقة في أي مكان على الشاشة
يشبه TrackPopOpMenuex TrackPopOpMenu باستثناء أنه يوفر وظائف إضافية
زيادة
فيما يلي عدة تعريفات نوع حول وظائف القائمة
menuiteminfo يحتوي هذا الهيكل على معلومات حول عناصر القائمة
tpmparams يتم استخدام هذا الهيكل من قبل وظيفة TrackPopUpMenuex لدعم وظائف إضافية
4. وظيفة الرسم
AbortPath يتجاهل جميع المسارات المحددة في مشهد الجهاز المحدد. يلغي أيضًا أي إنشاء مسار قيد التقدم حاليًا
يرسم Anglearc خطًا مع قوس توصيل
arcdraw قوس
يبدأ BeginPath فرع المسار
يلغي CancelDC عملية رسم طويلة في موضوع آخر
وتر ارسم الوتر
يغلق CloseNhmetafile مشهد جهاز Metafile المحدد المحدد ويعيد مقبضًا إلى Metafile الذي تم إنشاؤه حديثًا
أغلق عند رسم المسار ، أغلق الرقم المفتوح حاليًا.
يغلق CloseMetAfile مشهد جهاز Metafile المحدد ويعيد مقبضًا إلى Metafile الذي تم إنشاؤه حديثًا
COPEDENHMETAFILE يصنع نسخة (نسخة) من metafile المحسّن المحدد
Copymetafile يصنع نسخة من metafile المحدد (القياسي)
يقوم CreatebrushIndirect بإنشاء فرشاة تعتمد على بنية بيانات Logbrush
CreatedIbPatternbrush ينشئ فرشاة باستخدام صورة نقطية مستقلة عن الجهاز لتحديد نمط الفرشاة (نمط)
CreateenHmetFile يخلق مشهد جهاز Metafile معزز
CreateHatchBrush ينشئ فرشاة بنمط الظل
CreateMetAfile ينشئ مشهد جهاز Metafile
يقوم CreatePatternbrush بإنشاء فرشاة باستخدام صورة نقطية تحدد نمط الفرشاة
CreatePencReates فرشاة مع النمط المحدد والعرض واللون
CreatePenIndirect ينشئ قلمًا يعتمد على بنية تسجيل الدخول المحددة
يخلق Frushrush
DELETEENHMETAFILE يحذف metafile المحددة المحددة
الحذف الحذف يحذف metafile المحدد
يحذف DeleteObject كائن GDI وسيتم إصدار جميع موارد النظام المستخدمة من قبل الكائن.
يسحب الانحيال حدود مستطيلة باستخدام النمط المحدد
ترسل وظيفة Drawescape Escape البيانات مباشرة إلى برنامج تشغيل جهاز العرض
DrawFocusRect يرسم مستطيل التركيز
DrawFrameControl يرسم عنصر تحكم قياسي
يطبق DrawState مجموعة متنوعة من التأثيرات على صورة أو عملية رسم
يسيطر القطع الناقص على القطع الناقص محاطًا بمستطيل محدد
endpath يتوقف عن تحديد المسار
يسرد EnumenHmetafile سجلات metafile الفردية ل metafile المحسنة.
يعدد Enummetafile سجلات Metafile الفردية لنظام التشغيل Windows القياسي
تعداد المشروعات تعداد الفرش والفرش التي يمكن استخدامها مع مشهد الجهاز المحدد
ExtCreatepen يخلق فرشاة ممتدة (الزينة أو الهندسية)
يملأ Extfloodfill منطقة مع الفرشاة المحددة حاليًا في مشهد الجهاز المحدد.
FillPath يغلق أي أشكال مفتوحة في المسار ويملأها بالفرشاة الحالية
FillRect يملأ مستطيل بالفرشاة المحددة
Flattenpath يحول جميع المنحنيات في مسار إلى شرائح خط
تملأ Floodfill منطقة في مشهد الجهاز المحدد مع الفرشاة المحددة حاليًا
يرسم Framerect حدود حول مستطيل باستخدام الفرشاة المحددة
يضيف gdicomment رسالة تعليق إلى مشهد جهاز metafile المحدد المحدد
Gdiflush يؤدي أي عمليات رسم معلقة
يحدد GdigetBatchLimit عدد أوامر رسم GDI الموجودة في قائمة الانتظار
يحدد GdisetBatchLimit عدد أوامر رسم GDI التي يمكن تصويرها
يحدد GetArcdirection اتجاه الرسم الحالي عند رسم القوس.
GetBkColor يحصل على لون الخلفية الحالي لمشهد الجهاز المحدد
يحصل GetBkMode على وضع ملء الخلفية الحالي لمشهد الجهاز المحدد.
يحدد GetBrushorgex نقطة انطلاق الفرشاة المحددة حاليًا في مشهد الجهاز المحدد
GetCurrentObject يحصل على الكائن المحدد حاليًا للنوع المحدد
GetCurrentPositionEx يحصل على موضع القلم الحالي في مشهد الجهاز المحدد
يحصل getenhmetafile على مقبض metafile من metafile المحسّن الموجود في ملف القرص
getenhmetafileBits ينسخ metafile المحسنة المحددة إلى المخزن المؤقت للذاكرة
getenhmetafiledescription يعيد وصفًا لمحسّنة metafile
Getenhmetafileheader يحصل على رأس metafile من metafile المحسنة
Getenhmetafilepaletteentries يحصل على كل أو جزء من لوحة metafile المحسنة
getMetafile يحصل على مقبض metafile من metafile الموجود في ملف القرص
getMetAfileBitsex ينسخ metafile المحددة إلى المخزن المؤقت للذاكرة
GetMiterLimit يحصل على حد الميل (Miter) إعداد مشهد الجهاز
يحصل GetNearestColor على لون صلب أقرب إلى اللون المحدد استنادًا إلى إمكانيات عرض الجهاز.
GetObjectapi يحصل على هيكل يصف الكائن المحدد
يحدد getObjectType نوع كائن GDI المشار إليه بواسطة المقبض المحدد
يحصل GetPath على سلسلة من البيانات التي تحدد المسار الحالي
يحصل GetPixel على قيمة RGB للبكسل في مشهد الجهاز المحدد
يحصل GetPolyFillMode على وضع ملء المضلع لمشهد الجهاز المحدد
يحصل GetroP2 على وضع الرسم الحالي لمشهد الجهاز المحدد
GetStockObject يحصل على كائن متأصل (مخزون)
GetSyscolorbrush يحصل على فرشاة لأي لون نظام قياسي
يحول GetWinMetAfileBits metafile المحسّنة إلى metafile Windows القياسية عن طريق ملء المخزن المؤقت مع بيانات metafile القياسية
يقوم invertrect بإصدار مستطيل محدد في مشهد الجهاز عن طريق قلب قيمة كل بكسل.
يعدد خطوط المبتدات جميع النقاط في قطاع الخط المحدد
يستخدم Lineto القلم الحالي لرسم خط من الموضع الحالي إلى نقطة محددة.