یک راه استفاده از RegQueryInfoKey و سپس بدست آوردن تعداد subkey های کلید مورد نظر شما است یعنی index آخرین زیر کلید، که همانطوری که خودتان می دانید در MSDN مثال آن وجود دارد و نیازی به تکرار آن نیست.

روش دیگر هم همان حلقه while هست که انجام دادید ، ابتدا کاری را که در پست قبل گفتم انجام دهید و توجه داشته باشید که در هر مرحله از حلقه که ERROR_SUCCESS می گیرید نام یک subkey را در رشته خود دریافت می کنید که باید آن ها را در جای دیگری کپی کنید و یا مستقیم نمایش دهید که این کار را نکردید.

اگر هنوز هم جواب نمی دهد ، خودتان باید بررسی کنید که رجیستری باز شده درست انجام شده باشد.