int main(int argc, char* argv[]) { gtk_init(&argc,&argv); MakeMainWindow(); MakeContainers(); MakeMenu(); MakeToolbar(); MakeTextView(); MakeStatusBar(); PackAll(); gtk_widget_show_all(GTK_WIDGET(Mwin)); if(argc > 1) LoadFile(g_strdup(argv[1])); gtk_main(); gtk_main_quit(); return 0; }
NTSTATUS ReplicationDo ( LLS_HANDLE LlsHandle, LLS_REPL_HANDLE ReplHandle, DWORD LastReplicated ) /*++ Routine Description: Arguments: Return Value: --*/ { NTSTATUS Status; PREPL_SERVICE_RECORD Services = NULL; ULONG ServicesTotalRecords = 0; PREPL_SERVER_RECORD Servers = NULL; ULONG ServersTotalRecords = 0; PREPL_SERVER_SERVICE_RECORD ServerServices = NULL; ULONG ServerServicesTotalRecords = 0; REPL_CERTIFICATE_DB_0 CertificateDB; REPL_PRODUCT_SECURITY_0 ProductSecurity; DWORD UserLevel = 0; REPL_USER_RECORD_CONTAINER UserDB; #if DBG if (TraceFlags & (TRACE_FUNCTION_TRACE | TRACE_REPLICATION)) dprintf(TEXT("LLS TRACE: ReplicationDo\n")); #endif // // Pack all of our data into linear / self-relative buffers so we // can send them over. // ZeroMemory( &UserDB, sizeof( UserDB ) ); ZeroMemory( &CertificateDB, sizeof( CertificateDB ) ); ZeroMemory( &ProductSecurity, sizeof( ProductSecurity ) ); if ( (*pLlsCapabilityIsSupported)( LlsHandle, LLS_CAPABILITY_REPLICATE_USERS_EX ) ) { UserLevel = 1; Status = PackAll( LastReplicated, &ServicesTotalRecords, &Services, &ServersTotalRecords, &Servers, &ServerServicesTotalRecords, &ServerServices, 1, &UserDB.Level1.NumUsers, &UserDB.Level1.Users ); if (Status != STATUS_SUCCESS) goto ReplicationDoExit; } else { UserLevel = 0; Status = PackAll( LastReplicated, &ServicesTotalRecords, &Services, &ServersTotalRecords, &Servers, &ServerServicesTotalRecords, &ServerServices, 0, &UserDB.Level0.NumUsers, &UserDB.Level0.Users ); if (Status != STATUS_SUCCESS) goto ReplicationDoExit; } if ( (*pLlsCapabilityIsSupported)( LlsHandle, LLS_CAPABILITY_REPLICATE_CERT_DB ) ) { Status = CertDbPack( &CertificateDB.StringSize, &CertificateDB.Strings, &CertificateDB.HeaderContainer.Level0.NumHeaders, &CertificateDB.HeaderContainer.Level0.Headers, &CertificateDB.ClaimContainer.Level0.NumClaims, &CertificateDB.ClaimContainer.Level0.Claims ); if (Status != STATUS_SUCCESS) goto ReplicationDoExit; } if ( (*pLlsCapabilityIsSupported)( LlsHandle, LLS_CAPABILITY_REPLICATE_PRODUCT_SECURITY ) ) { Status = ProductSecurityPack( &ProductSecurity.StringSize, &ProductSecurity.Strings ); if (Status != STATUS_SUCCESS) goto ReplicationDoExit; } // // Transmit... // Status = (*pLlsReplicationServiceAddW) ( ReplHandle, ServicesTotalRecords, Services ); if (Status != STATUS_SUCCESS) goto ReplicationDoExit; Status = (*pLlsReplicationServerAddW) ( ReplHandle, ServersTotalRecords, Servers ); if (Status != STATUS_SUCCESS) goto ReplicationDoExit; Status = (*pLlsReplicationServerServiceAddW) ( ReplHandle, ServerServicesTotalRecords, ServerServices ); if (Status != STATUS_SUCCESS) goto ReplicationDoExit; if ( (*pLlsCapabilityIsSupported)( LlsHandle, LLS_CAPABILITY_REPLICATE_USERS_EX ) ) { Status = (*pLlsReplicationUserAddExW)( ReplHandle, UserLevel, &UserDB ); if (Status != STATUS_SUCCESS) goto ReplicationDoExit; } else { Status = (*pLlsReplicationUserAddW) ( ReplHandle, UserDB.Level0.NumUsers, UserDB.Level0.Users ); if (Status != STATUS_SUCCESS) goto ReplicationDoExit; } if ( (*pLlsCapabilityIsSupported)( LlsHandle, LLS_CAPABILITY_REPLICATE_CERT_DB ) ) { Status = (*pLlsReplicationCertDbAddW)( ReplHandle, 0, &CertificateDB ); if (Status != STATUS_SUCCESS) goto ReplicationDoExit; } if ( (*pLlsCapabilityIsSupported)( LlsHandle, LLS_CAPABILITY_REPLICATE_PRODUCT_SECURITY ) ) { Status = (*pLlsReplicationProductSecurityAddW)( ReplHandle, 0, &ProductSecurity ); } ReplicationDoExit: if (Status != STATUS_SUCCESS) { #if DBG dprintf(TEXT("LLS Replication ABORT: 0x%lX\n"), Status); #endif } if (Services != NULL) MIDL_user_free(Services); if (Servers != NULL) MIDL_user_free(Servers); if ( 0 == UserLevel ) { if (UserDB.Level0.Users != NULL) MIDL_user_free(UserDB.Level0.Users); } else { if (UserDB.Level1.Users != NULL) MIDL_user_free(UserDB.Level1.Users); } if (CertificateDB.Strings != NULL) MIDL_user_free(CertificateDB.Strings); if (CertificateDB.HeaderContainer.Level0.Headers != NULL) MIDL_user_free(CertificateDB.HeaderContainer.Level0.Headers); if (CertificateDB.ClaimContainer.Level0.Claims != NULL) MIDL_user_free(CertificateDB.ClaimContainer.Level0.Claims); if (ProductSecurity.Strings != NULL) MIDL_user_free(ProductSecurity.Strings); #if DBG if (TraceFlags & TRACE_REPLICATION) dprintf(TEXT(" LLS Replication Finished\n")); #endif return Status; } // ReplicationDo