بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
طبعاً قمت بالبحث في الانترنت بشكل عام و في المنتدى بشكل خاص قبل ان اقوم بادراج هذا السؤال ، ولم اجد اي نتيجة ، جميع المواضيع تتحدث عن شرح لوظيفة دالة API فقط . و المشكلة كالآتي :
قمت بتصريح دالة API في قسم التصريحات العامة كالآتي :
"kernel32" Alias "CreateDirectoryA" _
(ByVal lpPathName As String, _
lpSecurityAttributes As SECURITY_ATTRIBUTES) As Long
Private Type SECURITY_ATTRIBUTES
nLength As Long
lpSecurityDescriptor As Long
bInheritHandle As Long
End Type
Dim mfolder As SECURITY_ATTRIBUTES
Private Declare Function CreateDirectory Lib _
ثم قمت باستدعاء الدالة ( التي تعمل على انشاء مجلد ) في زر الأمر كالآتي :
CreateDirectory "C:\My Folder", mfolder
المشكلة هي في دالة API بشكل عام ، اذ ان جل مانقوم به هو نسخها و لصقها دون فهم لها . الاسئلة التي دعتني لادراج الموضوع هي :
1- لماذا قمنا بانشاء انواع للنوع SECURITY_ATTRIBUTES ، اي لماذا هذه الاسطر البرمجية ومتى نستخدمها :
nLength As Long
lpSecurityDescriptor As Long
bInheritHandle As Long
End Type
Private Type SECURITY_ATTRIBUTES
2- من اين نقوم باحظار المتغيرات او الباراميترات ( حتى لا اعرف ماهي ) التالية و على اي اساس نقوم بادراجها ( nLength و lpSecurityDescriptor و bInheritHandle ) ؟
3- لماذا قمنا بتصريح النوع الآتي و علي أي اساس تم ذلك :
Dim mfolder As SECURITY_ATTRIBUTES
وفي النهاية اتمنى ان يقوم احد الاعضاء المتميزين بشرح هذه المسائل الرئيسية شرحاً وافيا ًولكي يسد نقصاً في هذا المجال ، لانني وجدت ان هناك نقص يؤدي الى مشكلة للتعامل مع هذه الدوال وذلك لانني لم احصل على اجابة من المواقع و المنتديات العربية خلال بحثي .
اتمنى ان لا اكون قد اطلت عليكم ...
والسلام .